C語言實(shí)現(xiàn)判斷素?cái)?shù)">例16:C語言實(shí)現(xiàn)判斷素?cái)?shù)
733
2025-04-01
由ANSI標(biāo)準(zhǔn)定義的C語言關(guān)鍵字共32個(gè)
根據(jù)關(guān)鍵字的作用,可以將關(guān)鍵字分為數(shù)據(jù)類型關(guān)鍵字和流程控制關(guān)鍵字兩大類。
一、數(shù)據(jù)類型關(guān)鍵字
32位系統(tǒng):
A基本數(shù)據(jù)類型(5個(gè))
void:聲明函數(shù)無返回值或無參數(shù),聲明無類型指針,顯式丟棄運(yùn)算結(jié)果
char:字符型類型數(shù)據(jù),屬于整型數(shù)據(jù)的一種(1byte)
int:整型數(shù)據(jù),通常為編譯器指定的機(jī)器字長 (4byte)
float:單精度浮點(diǎn)型數(shù)據(jù),屬于浮點(diǎn)數(shù)據(jù)的一種 (4byte)
double:雙精度浮點(diǎn)型數(shù)據(jù),屬于浮點(diǎn)數(shù)據(jù)的一種 (8byte)
B類型修飾關(guān)鍵字(4個(gè))
short:修飾int,短整型數(shù)據(jù),可省略被修飾的int。(2byte)
long:修飾int,長整形數(shù)據(jù),可省略被修飾的int。(4byte)
long long:修飾int,超長整形數(shù)據(jù),可省略被修飾的int。(8byte)
注意:long long 和 unsigned long long 是 C99 的。且一些編譯器不支持。
signed:修飾整型數(shù)據(jù),有符號(hào)數(shù)據(jù)類型
unsigned:修飾整型數(shù)據(jù),無符號(hào)數(shù)據(jù)類型
C復(fù)雜類型關(guān)鍵字(5個(gè))
struct:結(jié)構(gòu)體聲明
union:共用體聲明
enum:枚舉聲明
typedef:聲明類型別名
sizeof:得到特定類型或特定類型變量的大小
D存儲(chǔ)級(jí)別關(guān)鍵字(6個(gè))
auto:指定為自動(dòng)變量,由編譯器自動(dòng)分配及釋放。通常在棧上分配
static:指定為靜態(tài)變量,分配在靜態(tài)變量區(qū),修飾函數(shù)時(shí),指定函數(shù)作用域?yàn)槲募?nèi)部
register:指定為寄存器變量,建議編譯器將變量存儲(chǔ)到寄存器中使用,也可以修飾函數(shù)形參,建議編譯器通過寄存器而不是堆棧傳遞參數(shù)
extern:指定對(duì)應(yīng)變量為外部變量,即在另外的目標(biāo)文件中定義,可以認(rèn)為是約定由另外文件聲明的對(duì)象的一個(gè)“引用“
const:與volatile合稱“cv特性”,指定變量不可被當(dāng)前線程/進(jìn)程改變(但有可能被系統(tǒng)或其他線程/進(jìn)程改變)
volatile:與const合稱“cv特性”,指定變量的值有可能會(huì)被系統(tǒng)或其他進(jìn)程/線程改變,強(qiáng)制編譯器每次從內(nèi)存中取得該變量的值
二、流程控制關(guān)鍵字
A跳轉(zhuǎn)結(jié)構(gòu)(4個(gè))
return:用在函數(shù)體中,返回特定值(或者是void值,即不返回值)
continue:結(jié)束當(dāng)前循環(huán),開始下一輪循環(huán)
break:跳出當(dāng)前循環(huán)或switch結(jié)構(gòu)
goto:無條件跳轉(zhuǎn)語句(禁用)
B分支結(jié)構(gòu)(5個(gè))
if:條件語句
else:條件語句否定分支(與if連用)
switch:開關(guān)語句(多重分支語句)
case:開關(guān)語句中的分支標(biāo)記
default:開關(guān)語句中的“其他”分治,可選。
C循環(huán)結(jié)構(gòu)(3個(gè))
for:for循環(huán)結(jié)構(gòu),for(1;2;3)4;的執(zhí)行順序?yàn)?->2->4->3->2...循環(huán),其中2為循環(huán)條件
do:do循環(huán)結(jié)構(gòu),do 1 while(2);的執(zhí)行順序是1->2->1...循環(huán),2為循環(huán)條件
while:while循環(huán)結(jié)構(gòu),while(1) 2;的執(zhí)行順序是1->2->1...循環(huán),1為循環(huán)條件
以上循環(huán)語句,當(dāng)循環(huán)條件表達(dá)式為真則繼續(xù)循環(huán),為假則跳出循環(huán)。
三、注意:
1、定義與聲明
兩者最重要的區(qū)別:定義創(chuàng)建了對(duì)象并為這個(gè)對(duì)象分配了內(nèi)存;聲明沒有分配內(nèi)存。
問題:以下選項(xiàng)是聲明or定義?
A)extern int i; B)int i;
答:A是聲明,B是定義
聲明是告訴系統(tǒng) ,這個(gè)i 是一個(gè)變量。
而定義 就是告訴系統(tǒng) 這個(gè)變量里面的東西是什么。
問題:以下選項(xiàng)是聲明or定義?
void fun(int i, char c);
答:這是函數(shù)參數(shù)的聲明,事實(shí)上void fun(int i,char c);的最前面省略了extern
2、關(guān)鍵字的詳細(xì)介紹請(qǐng)轉(zhuǎn)至【C語言】(2):關(guān)鍵字的詳細(xì)介紹
3、雖然最新的c標(biāo)準(zhǔn)是c11,以及更新了2次了,但c99和c11的中文版資料比較少,且如今所有編譯器都支撐C89。我們這個(gè)國標(biāo)還是有些參考價(jià)值的:
鏈接:https://pan.baidu.com/s/1zJOdgisvqW4zfvgQVOiKPQ
提取碼:u11x
復(fù)制這段內(nèi)容后打開百度網(wǎng)盤手機(jī)App,操作更方便哦
C 語言 單片機(jī) 嵌入式
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。