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