C語言中的32個關鍵字你知道多少個呢?根據關鍵字的作用分為四類:數據類型關鍵字、控制語句關鍵字、存儲類型關鍵字和其它關鍵字。
1.1 基本數據類型
- int:用于聲明整數類型的變量。
- char:用于聲明字符類型的變量。
- float:用于聲明單精度浮點數類型的變量。
- double:用于聲明雙精度浮點數類型的變量。
1.2 修飾符
這些修飾符用于改變基本數據類型的存儲大小和范圍。
1. short:用于聲明短整數類型的變量,通常比int短。
2. long:用于聲明長整數類型的變量,通常比int長。
3. signed:用于聲明有符號數類型的變量(默認情況下,整數類型是有符號的)。
4. unsigned:用于聲明無符號數類型的變量。
1.3 派生類型
這些關鍵字用于聲明復雜類型的變量。
- struct:用于聲明結構體類型。
- union:用于聲明共用體類型。
- enum:用于聲明枚舉類型。
1.4 類型定義
- typedef:用于給現有類型起別名。
- void:用于聲明無類型,常用于函數返回類型。
1.5 類型限定符
這些限定符用于改變變量的存儲和優化方式。
- const:用于聲明常量,表示變量的值不能被修改。
- volatile:用于聲明易變變量,表示變量的值可能被程序之外的因素改變,編譯器不會對其進行優化。
- restrict:用于指針聲明,表示指針是唯一訪問對象的方式,能夠幫助編譯器優化代碼。
1.6 復合類型
- _Bool:用于聲明布爾類型的變量。
- _Complex:用于聲明復數類型的變量(C99)。
- _Imaginary:用于聲明虛數類型的變量(C99)。
1.7 標準庫類型
通過標準庫中的頭文件,可以引入更多的數據類型關鍵字,例如 stddef.h 中的 size_t, stdint.h 中的 int32_t 等。這些關鍵字構成了C語言的數據類型系統,允許程序員根據需要聲明和定義各種變量和數據結構。
2.1 條件控制語句
if:用于條件判斷。
if(condition){
//codetobeexecutedifconditionistrue
}
else:用于與if配合,處理條件為假的情況。
if(condition){
//codetobeexecutedifconditionistrue
}else{
//codetobeexecutedifconditionisfalse
}
else if:用于在if和else之間檢查其他條件。
if(condition1){
//codetobeexecutedifcondition1istrue
}elseif(condition2){
//codetobeexecutedifcondition2istrue
}else{
//codetobeexecutedifbothconditionsarefalse
}
2.2 選擇控制語句
switch:用于根據變量的值進行多分支選擇。
switch (variable) {
case value1:
// code to be executed if variable == value1
break;
case value2:
// code to be executed if variable == value2
break;
// other cases
default:
// code to be executed if variable doesn't match any case}
case:用于定義switch語句中的分支。
default:用于定義switch語句中的默認分支。
2.3 循環控制語句
while:用于條件控制的循環,在每次循環前檢查條件。
while(condition){//codetobeexecutedrepeatedlywhileconditionistrue
}
do...while:用于條件控制的循環,在每次循環后檢查條件,保證循環體至少執行一次。
do{
//codetobeexecutedrepeatedly
}while(condition);
for(initialization;condition;increment){
//codetobeexecutedrepeatedlywhileconditionistrue
}
2.4跳轉控制語句
break:用于退出當前的循環或switch語句。
break;
continue:用于跳過當前循環中的剩余代碼,直接進入下一次循環。
continue;
return:用于從函數中返回。
returnvalue;?
goto:用于無條件跳轉到標號為label的語句。
gotolabel;
//othercode
label:
//codetobeexecutedafterthejump
2.5 其他控制語句
sizeof:用于獲取變量或類型的大小(以字節為單位)。
sizeof(type);?
assert:用于在調試時檢查條件是否為真,條件為假時終止程序執行(需要包含assert.h頭文件)。
assert(condition);
這些關鍵字幫助程序員控制程序的執行流程,實現條件判斷、循環、跳轉等功能。
auto:是局部變量的默認存儲類。它表示變量具有自動存儲持續時間,即變量在進入其作用域時被創建,在退出其作用域時被銷毀。通常用于函數內部的局部變量,現代編譯器可以省略此關鍵字。
autointx=10;//等同于intx=10;
register:建議編譯器將變量存儲在CPU寄存器中,而不是在內存中,從而提高訪問速度。寄存器變量不能取地址(即不能使用&操作符)。
registerintcounter=0;
static:有三種主要用途:1.在函數內部:表示局部變量在函數調用之間保持其值,而不是每次調用時重新創建。
voidfunc(){
staticintcount=0;//count在第一次調用時被初始化,后續調用時保持其值
count++;
printf("%d\n",count);
}
2.在函數外部:表示變量在整個程序的生命周期內可見,但僅在定義它的文件內可見(即具有文件作用域)。
staticintglobalVar=100;//僅在定義它的文件內可見
3.在函數聲明前:表示函數僅在定義它的文件內可見。
staticvoidhelperFunction(){
//僅在定義它的文件內可見
}
extern:用于聲明在其他文件中定義的變量或函數,使得可以在當前文件中引用它們。它表示變量或函數的定義在其他地方(可能是其他文件),但可以在當前文件中使用。
externintglobalVar;//引用其他文件中定義的變量externvoidsomeFunction();//引用其他文件中定義的函數
_Thread_local:用于聲明線程局部存儲(TLS)變量,每個線程都有獨立的實例。可以與static或extern結合使用。
_Thread_localintthreadVar=0;//每個線程都有獨立的threadVar實例
這些存儲類型關鍵字提供了靈活的方式來管理變量的存儲、作用域和生命周期,從而優化程序性能和內存使用。
C語言中有34種運算符,涵蓋了算術運算、關系運算、邏輯運算、位運算、賦值運算和其他特殊運算。以下是這些運算符的詳細分類和用法:
-
C語言
+關注
關注
180文章
7614瀏覽量
137703 -
字符
+關注
關注
0文章
234瀏覽量
25262 -
數據類型
+關注
關注
0文章
236瀏覽量
13662
發布評論請先 登錄
相關推薦
評論