C語言關(guān)鍵字共有32個(gè),根據(jù)用途,可分為四類:
第一類:變量數(shù)據(jù)類型關(guān)鍵字:14個(gè)
第二類:9條基本語句用到的關(guān)鍵字:12個(gè)
第三類:存儲(chǔ)類型關(guān)鍵字:5個(gè)
第四類:運(yùn)算符關(guān)鍵字:1個(gè)
學(xué)技術(shù),重在日拱一卒、一點(diǎn)一滴的積累。今天一起來分析C語言的32個(gè)關(guān)鍵字都有哪些,以及關(guān)鍵字的含義、用途。以下內(nèi)容,只代表個(gè)人觀點(diǎn),不一定對,僅供參考,隨便看看。
C語言關(guān)鍵字總共有32個(gè),根據(jù)關(guān)鍵字的用途,可分為四類:
第一類:變量數(shù)據(jù)類型關(guān)鍵字:14個(gè)
1.1 char 單字節(jié)整型數(shù)或字符型數(shù)據(jù)
1.2 short短整型數(shù)
1.3 int基本整型數(shù)
1.4 long長整型數(shù)
1.5 float單精度浮點(diǎn)型數(shù)
1.6 double雙精度浮點(diǎn)型數(shù)
1.7 signed有符號數(shù)
二進(jìn)制數(shù)據(jù)的最高位為符號位,最高位是1為負(fù)數(shù),最高位是0為正數(shù)。
1.8 unsigned無符號數(shù)數(shù)據(jù)
1.9 void無數(shù)據(jù)類型、空數(shù)據(jù)類型
1.10 volatile 該變量在程序執(zhí)行中可被隱含的改變
1.11 typedef 重新進(jìn)行數(shù)據(jù)類型定義
1.12 struct 結(jié)構(gòu)類型數(shù)據(jù)
1.13 enum 枚舉類型數(shù)據(jù)
1.14 union 聯(lián)合類型數(shù)據(jù)
第二類:9條基本語句用到的關(guān)鍵字:12個(gè)
2.1 if ,構(gòu)成選擇語句
2.2 else,構(gòu)成選擇語句
2.3 witch,構(gòu)成選擇語句
2.4 case,構(gòu)成選擇語句
2.5 break,跳出最內(nèi)層循環(huán)
2.6 default,構(gòu)成選擇語句
2.7 for,構(gòu)成循環(huán)語句
2.8 do,構(gòu)成循環(huán)語句
2.9 while,構(gòu)成循環(huán)語句
2.10 continue,轉(zhuǎn)向下一次循環(huán)
2.11 goto,無條件轉(zhuǎn)移語句
2.12 return,函數(shù)返回
第三類:存儲(chǔ)類型關(guān)鍵字:5個(gè)
3.1 const 在程序執(zhí)行過程中不可更改的常量值
3.2 extern 在其它程序模塊中說明了的全局變量
3.3 static 靜態(tài)變量
3.4 register使用CPU內(nèi)部寄存器的變量
3.5 auto 用以說明局部變量,缺省值為此類型變量
第四類:運(yùn)算符關(guān)鍵字:1個(gè)
4.1 sizeof 運(yùn)算符,計(jì)算表達(dá)式或數(shù)據(jù)類型占用的,內(nèi)存的字節(jié)數(shù)。
![372ca974-69c2-11ec-8d32-dac502259ad0.gif](https://file1.elecfans.com//web2/M00/9B/C6/wKgZomTnzBiAJzKkAAGgQ5ikobg675.gif)
C語言關(guān)鍵字總共有32個(gè),其中第一類:變量數(shù)據(jù)類型關(guān)鍵字14個(gè),會(huì)在后續(xù)C語言學(xué)習(xí)文章中講解。
第二類:9條基本語句用到的關(guān)鍵字:12個(gè)已經(jīng)在@老牛經(jīng)濟(jì)學(xué) NJS2 淺談C語言入門中分析過。
下面重點(diǎn)分析以下兩類關(guān)鍵字的用法。
第三類:存儲(chǔ)類型關(guān)鍵字:5個(gè)
3.1 const 在程序執(zhí)行過程中不可更改的常量值
C語言程序范例:
charx=9;
const int a=1000;
const char *sp=&a;
char*const ss=&a;
const char *const sz=&a;
程序分析:
第一行代碼:定義x為字符型變量,并賦值為9,后面x變量的值可以被改變。
第二行代碼:定義a為整型變量,賦值為1000,且值不能被改變。
第三行代碼:定義sp為字符型指針,且sp指針指向的地址里面的數(shù)不能被改變。
第四行代碼:定義ss為字符型指針,指針的值,也就是指針指向的地址&a不能被改變,但指針指向地址里面的變量a可被改變。
第五行代碼:定義sz為字符型指針,指針的值,也就是指針指向的地址&a不能被改變,并且指針指向地址里面的變量a也不能被改變。
3.2 extern 在其它程序模塊中說明了的全局變量
extern 關(guān)鍵字在C語言的一個(gè)工程中,有多個(gè).c文件,這些.c文件中如果需要共用相同的變量,可以將該變量定義為extern變量。另外需要注意該變量的作用域。
3.3 static 靜態(tài)變量
static關(guān)鍵字定義該變量為靜態(tài)變量。
如果定義為全局變量的靜態(tài)變量,則和全局變量完全相同,只是靜態(tài)全局變量只能在該.c文件中使用。而全局變量在同一個(gè)工程文件中可以被多個(gè).c文件使用。
如果定義為局部靜態(tài)變量,作用域和局部變量完全相同。并且該局部變量占用的內(nèi)存不會(huì)被優(yōu)化,會(huì)一直存在。
定義為局部靜態(tài)變量,沒有賦值,默認(rèn)為0。
3.4 register使用CPU內(nèi)部寄存器的變量
register表示該變量存儲(chǔ)在cpu的寄存器中,編譯程序相應(yīng)的變量將被頻繁的使用,一般該變量可以加快存儲(chǔ)的速度。
3.5 auto 用以說明局部變量,缺省值為此類型變量
auto char a;和char a;這兩條賦值語句的含義完全相同。
第四類:運(yùn)算符關(guān)鍵字:1個(gè)
4.1 sizeof 運(yùn)算符,計(jì)算表達(dá)式或數(shù)據(jù)類型占用的,內(nèi)存的字節(jié)數(shù)。
C語言程序范例:
unsigned char a,m,n,x,y,z;
unsigned int b;
unsigned char niu[10];
unsigned char*sp;
m=sizeof(a);
n=sizeof(b);
x=sizeof(niu);
y=sizeof(sp);
z=sizoef(*sp);
程序分析:
第一行代碼:定義a,m,n,x,y五個(gè)變量為無符號字符型變量,這些變量在內(nèi)存中各占用1個(gè)字節(jié),它們的取值范圍為0-255。
第二行代碼:定義b變量為無符號整型變量,該變量在內(nèi)存中占用4個(gè)字節(jié)。
第三行代碼:定義niu為數(shù)組變量,該數(shù)組長度為10。
第四行代碼:定義sp為指針變量,該指針指向的內(nèi)存空間,存放的數(shù)為字符型變量。
程序運(yùn)行結(jié)果:
m=1。
n=4。
x=10。
y=4。//sizoef(sp)表示sp指針占用內(nèi)存空間大小。C語言中不論是那種類型的指針,均默認(rèn)占4個(gè)字節(jié)內(nèi)存。
z=1。//sizoef(*sp)表示sp指針指向地址里面的數(shù),占用的內(nèi)存大小。
C語言的關(guān)鍵字,需要在編程中,有意識(shí)的去訓(xùn)練和實(shí)踐,才能達(dá)到熟練應(yīng)用的目標(biāo)。
-
C語言
+關(guān)注
關(guān)注
180文章
7614瀏覽量
137817
發(fā)布評論請先 登錄
相關(guān)推薦
EE-62:在C語言中訪問短字內(nèi)存
![EE-62:在<b class='flag-5'>C</b><b class='flag-5'>語言</b>中訪問短<b class='flag-5'>字</b>內(nèi)存](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
C語言關(guān)鍵字分別發(fā)生在哪個(gè)階段
C++新手容易犯的十個(gè)編程錯(cuò)誤
使用邊緣AI和Sitara處理器進(jìn)行關(guān)鍵字檢測
![使用邊緣AI和Sitara處理器進(jìn)行<b class='flag-5'>關(guān)鍵字</b>檢測](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
typedef struct和直接struct的區(qū)別
軟開關(guān)電路可以分為哪幾類
鴻蒙原生應(yīng)用元服務(wù)開發(fā)-倉頡基本概念標(biāo)識(shí)符
溫度傳感器分為哪幾類
嵌入式中C語言結(jié)構(gòu)體基本實(shí)現(xiàn)
![嵌入式中<b class='flag-5'>C</b><b class='flag-5'>語言</b>結(jié)構(gòu)體基本實(shí)現(xiàn)](https://file1.elecfans.com//web2/M00/E4/42/wKgZomY_FOKAdlRXAADOabNodfI522.jpg)
G.652光纖可以分為幾類
C語言中的typedef的應(yīng)用
![<b class='flag-5'>C</b><b class='flag-5'>語言</b>中的typedef的應(yīng)用](https://file1.elecfans.com/web2/M00/C3/B9/wKgaomXn5LGAbFesAAAe4pvOxcc159.png)
嵌入式C語言面試大挑戰(zhàn)
![嵌入式<b class='flag-5'>C</b><b class='flag-5'>語言</b>面試大挑戰(zhàn)](https://file1.elecfans.com/web2/M00/C3/99/wKgaomXmudSAfByVAAAaS7J-56c861.png)
評論