C语言的32个常用关键字
目錄
前言
一、關鍵字是什么?
二、關鍵字使用方法
1.關鍵字分類
2.使用方法(詳解)
1.數據類型關鍵字
- int,float,double,char
- short,long,signed,unsigned
- union,struct()
- enum
2.存儲類型關鍵字
- auto
- static
- register
- extern
3.控制語句關鍵字
- for ,do ,while
- ?if,else, switch, case, default
- goto ,continue,break,return
- ?const,typedef,sizeof,volatile
總結
前言
對于剛入門c語言的小白而言,了解C語言的關鍵字,包括其含義、用法,對分析和編寫C程序都有著極其重要的作用
一、關鍵字是什么?
關鍵字又稱為保留字,就是已被C語言本身使用,不能作其它用途使用的字,關鍵字不能用作變量名、函數名等
下面是小編總結的c語言常用的32個關鍵字
| auto | break | case | char | const |
| continue | default | do | double | else |
| enum | extern | float | for | goto |
| if | int | long | register | return |
| short | signerd | sizeof | static | struct |
| switch | typedeft | union | unsigned | void |
| volatile | while |
二、關鍵字使用方法
1.關鍵字分類
- 數據類型關鍵字(12個)
| int | 整型變量或函數? |
| char | 字符型變量或函數 |
| float | 浮點型變量或函數 |
| double | 雙精度變量或函數 |
| enum | 枚舉類型? |
| short | 短整型變量或函數? |
| long | 長整型變量或函數 |
| signed | 有符號類型變量或函數? |
| unsigned | 無符號類型變量或函數? |
| struct | 結構體變量或函數? |
| union | 聯合數據類型? |
| void | 修飾函數,說明函數無返回值 |
| 修飾指針,說明指針是不確定數據類型的指針 | |
| 函數無返回值或無參數,無類型指針 |
- 存儲類型關鍵字(4個)
| auto | 聲明自動變量 |
| static | 聲明靜態變量 |
| ?register | 聲明存儲器變量 |
| extern |
聲明變量,在其他文件中聲明,亦引用變量 |
- 控制語句關鍵字(12個)
| 跳轉結構 | goto | 無條件跳轉語句 |
| continue | 結束當前循環,開始下一輪循環 | |
| break | 跳出當前循環或switch結構 | |
| return | 子程序返回語句,可帶或不帶參數 | |
| 循環結構 | for | for循環結構 |
| do | 循環語句的循環體? | |
| while | 循環語句的循環條件? | |
| 分支結構 | if | ?條件語句? |
| else | 條件語句否定分支(與 if 連用)? | |
| switch | 用于開關語句? | |
| case | 開關語句分支? | |
| default | 開關語句中的“其他”分支,可選 |
- 其他關鍵字
| const | 聲明只讀變量? |
| sizeof | 計算對象所占內存空間大小 |
| typedef | 給數據類型取別名 |
| volatile | 說明變量在程序執行中可被隱含地改變 |
2.使用方法(詳解)
1.數據類型關鍵字
-
int,float,double,char
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{int a = 1;//定義一個整型數a,并且初始化為1float b = 2;//定義一個單精度浮點型數b,初始化為2double c = 10;//定義一個雙精度浮點數c,初始化為10char ch1 = 'x';//定義一個字符型數ch1,把字符x放入ch1中printf("%d %f %lf %c\n", a, b, c,ch1);return 0;
}
-
short,long,signed,unsigned
#include <stdio.h>
int main()
{long int a = 4;//定義長整型數a,初始化為4short int b = 7;//定義一個短整型數b,初始化為7signed int d = 2;//定義一個有符號整型數d,初始化為2unsigned int c = 8;//定義一個無符號整型數c,初始化為8printf("%u", c);return 0;
}
-
union,struct()
定義格式為
union 共用體名
{
? ? 成員列表
};
如:
#include <stdio.h>
union book
{float price;char name[40];int id[20];
};//此共用體包含三個成員,分別是價格price,書名name,書籍序列號id
struct用法與union一樣,兩者不同的是結構體的各個成員會占用不同的內存,互相之間沒有影響;而共用體的所有成員占用同一段內存,修改一個成員會影響其余所有成員
-
enum
定義格式為:
enum 枚舉名
{枚舉值名表};
如:
#include <stdio.h>
enum
{Jan,Fed,Mar,Apr,May,Jun,Jul,Aug,Sept,Oct,Nov,Dec};
//枚舉一年中的1到12月
2.存儲類型關鍵字
-
auto
#include <stdio.h>
void sub(float a)
{auto int i;//這個i被auto修飾,為局部變量,生命周期只在這個括號內
}
-
static
小編對static函數進行了獨立的講解哦,可以點擊下面鏈接觀看
https://blog.csdn.net/m0_62588419/article/details/127418937?spm=1001.2014.3001.5501https://blog.csdn.net/m0_62588419/article/details/127418937?spm=1001.2014.3001.5501
-
register
寄存器變量也是自動變量,這種變量的值是保留在cpu的寄存器中,程序運行時,訪問存于寄存器內的值要比訪問存于內存中值要快得多,因此當程序對運行速度較高時,可把那些頻繁引用的少數變量指定為register變量以提高運行速度
#include <stdio.h>
int main()
{int power(int a, register int n);//函數聲明int s;s = power(5, 3);printf("%d\n", s);}
int power(int x, register int n)//函數定義
{register int p;for (p = 1; n; n--)p = p * x;return p;
}
-
extern
這個函數用代碼舉例可能沒有文字描述直觀,那小編就以字代碼和大家嘮嘮吧
在我們寫代碼時,在一個project工程下,我們建立一個test-1.c文件和一個test-2.c文件,假如我們在第一個test-1.c文件中自定義了一個函數,假使我們在test-2.c文件中還需要用到這個函數,我們就可以用auto+函數聲明,此時就可以調用外部函數啦
3.控制語句關鍵字
-
for ,do ,while
C語言 for 循環語句的一般格式如下:
for(表達式1; 表達式2; 表達式3)
? ? 循環體語句;
#include<stdio.h>
int main()
{int a = 0;//定義一個整型數并且初始化為0for (a = 0; a <= 5; a++)//for循環,a從0開始,到5結束,每次循環完a自增1{printf("海綿寶寶");//循環一次打印一次海綿寶寶}return 0;
}
?在C語言中do while一般連用構成循環
do
{
??? 語句;
}
while (表達式);
#include<stdio.h>
int main()
{int a = 5;do{a = a + 3;printf("%d\n", a);} while (a > 20);return 0;
}
-
?if,else, switch, case, default
一般情況下,else都是跟if連用的,所以我們放在一起
語法為:
if(表達式)
{語句}
if(表達式)
{語句}
else(表達式)
{語句}
if分支有單分支,雙分支,多分志的結構,在這里我就例舉一種情況來說明if else的用法
#include <stdio.h>
int main()
{int a = 0;scanf("%d", &a);if (a > 2 && a < 10)//如果a>2,并且a<10{printf("我是大可愛");}else//否則(即a不在2-10的范圍內){printf("我不可愛");}return 0;
}
case, switch, default一般情況下在一起用,這里小編也放在一起和大家講啦
switch 語句根據控制表達式的值,可以把程序流跳轉到多個語句中的一個執行:括號里的表達式具有整數類型,并且這里的語句就是該 switch 主體,它包括了多個 case 情況,以及最多一個 default 。
括號里的表達式會被計算一次,并和 case 標簽中的常量表達式做比較。如果表達式的值匹配其中的某個 case 常量,程序流就會跳轉到該 case 標簽后面的語句。如果沒有匹配的 case 常量,程序流就會跳轉到 default 標簽后的語句(如果存在 default 標簽)。
switch語句的一般表達形式
switch(表達式)
{
case?常量表達式1:語句1;
case?常量表達式2:語句2;
...
case 常量表達式n:語句n;
default:語句n+1;
}
#include<stdio.h>
int main()
{int g=100;switch (g / 10){case 10:printf("perfect\n");case 9: printf("A\n");case 8: printf("B\n");case 7: printf("C\n"); break;//如果case結束后不加break,程序就會繼續往下執行case 6: printf("D\n"); break;default: printf("over");}return 0;
}
在這里小編還要強調的是,初學C語言的小伙伴一定要深究加break與不加break的區別,只有弄清楚這個,程序才能達到自己想要的結果哦?
-
goto ,continue,break,return
goto語句成為無條件轉向語句,一般形式:
goto 語句標號;
比如說,我們需要從鍵盤輸入一組數據,以零作為結束輸入數據標志,求這組數據之和,這是我們可以借助goto來實現
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{int number = 0;int sum = 0;
loop:scanf("%d", &number);//loop是配合goto使用的,相當于一個行標號sum += number;//sum=sum+numberif (number != 0)goto loop;//跳轉到loop標記的那一行printf("the total sum is%d\n", sum);return 0;
}
前面我們講到,break用來跳轉出switch語句當 break 關鍵字用于 while for循環時,會終止循環而執行整個循環語句后面的代碼,滿足條件時便跳出循環。
continue 語句的作用是跳過循環體中剩余的語句而強制進入下一次循環。下面我們來看兩個代碼
#include <stdio.h>
int main()
{int a = 0;int b = 0;for (a = 1; a <= 10; a++)//a從0開始,到十結束循環,每次循環a自增一次{b = b + 1;if (b > 5)break;//跳出循環printf("%d ", b);}return 0;
}//此程序的輸出結果為1 2 3 4 5
#include<stdio.h>
int main()
{int a = 0;int b = 0;for (a = 1; a <= 10; a++)//a從1開始,到十結束循環,每次循環a自增一次{b = b + a;printf("%d ", a);if (a % 2 == 0)//如果a除以二的余數等于0continue;//跳出這次循環,繼續下一次循環printf("%d\n",b);}return 0;
}
return 語句的一般形式為:
return 表達式;
或者:
return (表達式);
就是對函數返回類型的說明
int func(){printf("http://c.biancheng.net\n");
}
-
?const,typedef,sizeof,volatile
const
const int Max?= 230;//用const修飾的變量,它的值不能被改變,在整個作用域中都保持固定
?sizeof
sizeof使用形式: sizeof(type)數據類型必須用括號括住: sizeof(int)
#include<stdio.h>
int main()
{int b = 2;printf("%d", sizeof(b));return 0;
}
因為typedef和volatile所需要的篇幅較大,小編會在后期的文章中逐一講解哦
總結
以上就是今天要講的內容,本文僅僅簡單介紹了C語言常用關鍵字的使用,而關鍵字在除本文介紹之外的用法,還有許多強大的功能,隨著編程基礎的提高,大家可以慢慢去探索哦
總結
以上是生活随笔為你收集整理的C语言的32个常用关键字的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [ZJOI2007]矩阵游戏
- 下一篇: 程序员修炼之道阅读笔记01