C語言必須知道的關鍵字
你知道C語言有什麼關鍵字嗎?C語言的關鍵字共有32個,關鍵字有什麼作用嗎?下面由小編為大家整理的C語言的關鍵字知識,希望大家喜歡!
C語言的關鍵字知識
1 數據類型關鍵字(12個):
(1) char :聲明字符型變量或函數
(2) double :聲明雙精度變量或函數
(3) enum :聲明枚舉類型
(4) float:聲明浮點型變量或函數
(5) int: 聲明整型變量或函數
(6) long :聲明長整型變量或函數
(7) short :聲明短整型變量或函數
(8) signed:聲明有符號類型變量或函數
(9) struct:聲明結構體變量或函數
(10) union:聲明聯合數據類型
(11) unsigned:聲明無符號類型變量或函數
(12) void :聲明函數無返回值或無參數,聲明無類型指針(基本上就這三個作用)
(2)控制語句關鍵字(12個):
A循環語句
(1) for:一種循環語句(可意會不可言傳)
(2) do :循環語句的循環體
(3) while :循環語句的循環條件
(4) break:跳出當前循環
(5) continue:結束當前循環,開始下一輪循環
B條件語句
(1)if: 條件語句
(2)else :條件語句否定分支(與 if 連用)
(3)goto:無條件跳轉語句
C開關語句
(1)switch :用於開關語句
(2)case:開關語句分支
(3)default:開關語句中的“其他”分支
return :子程序返回語句(可以帶參數,也看不帶參數)
3 存儲類型關鍵字(4個)
(1)auto :聲明自動變量 一般不使用
(2)extern:聲明變量是在其他文件正聲明(也可以看做是引用變量)
(3)register:聲明積存器變量
(4)static :聲明靜態變量
4 其它關鍵字(4個):
(1)const :聲明只讀變量
(2)sizeof:計算數據類型長度
(3)typedef:用以給數據類型取別名(當然還有其他作用
(4)volatile:説明變量在程序執行中可被隱含地改變
C語言關鍵字—register分析
(1)register變量必須是能被CPU所接受的類型。
這通常意味着register變量必須是一個單個的值,並且長度應該小於或者等於整型的長度。不過,有些機器的寄存器也能存放浮點數。
(2)因為register變量可能不存放在內存中,所以不能用“&”來獲取register變量的地址。
(3)只有局部自動變量和形式參數可以作為寄存器變量,其它(如全局變量)不行。
在調用一個函數時佔用一些寄存器以存放寄存器變量的值,函數調用結束後釋放寄存器。此後,在調用另外一個函數時又可以利用這些寄存器來存放該函數的寄存器變量。
(4)局部靜態變量不能定義為寄存器變量。不能寫成:register static int a, b, c;
(5)由於寄存器的'數量有限(不同的cpu寄存器數目不一),不能定義任意多個寄存器變量,而且某些寄存器只能接受特定類型的數據(如指針和浮點數),因此真正起作用的register修飾符的數目和類型都依賴於運行程序的機器,而任何多餘的register修飾符都將被編譯程序所忽略。
C語言的sizeof解析
一、sizeof的概念
sizeof是C語言的一種單目操作符,如C語言的其他操作符++、--等。它並不是函數。sizeof操作符以字節形式給出了其操作數的存儲大小。操作數可以是一個表達式或括在括號內的類型名。操作數的存儲大小由操作數的類型決定。
二、sizeof的使用方法
1、用於數據類型
sizeof使用形式:sizeof(type)
數據類型必須用括號括住。如sizeof(int)。
2、用於變量
sizeof使用形式:sizeof(var_name)或sizeof var_name
變量名可以不用括號括住。如sizeof (var_name),sizeof var_name等都是正確形式。帶括號的用法更普遍,大多數程序員採用這種形式。
注意:sizeof操作符不能用於函數類型,不完全類型或位字段。不完全類型指具有未知存儲大小的數據類型,如未知存儲大小的數組類型、未知內容的結構或聯合類型、void類型等。
如sizeof(max)若此時變量max定義為int max(),sizeof(char_v) 若此時char_v定義為char char_v [MAX]且MAX未知,sizeof(void)都不是正確形式。
三、sizeof的結果
sizeof操作符的結果類型是size_t,它在頭文件中typedef為unsigned int類型。該類型保證能容納實現所建立的最大對象的字節大小。
1、若操作數具有類型char、unsigned char或signed char,其結果等於1。
ANSI C正式規定字符類型為1字節。
2、int、unsigned int 、short int、unsigned short 、long int 、unsigned long 、float、double、long double類型的sizeof 在ANSI C中沒有具體規定,大小依賴於實現,一般可能分別為2、2、2、2、4、4、4、8、10。
3、當操作數是指針時,sizeof依賴於編譯器。例如Microsoft C/C++7.0中,near類指針字節數為2,far、huge類指針字節數為4。一般Unix的指針字節數為4。
4、當操作數具有數組類型時,其結果是數組的總字節數。
5、聯合類型操作數的sizeof是其最大字節成員的字節數。結構類型操作數的sizeof是這種類型對象的總字節數,包括任何墊補在內。