關(guān)鍵字數(shù)據(jù)類型修飾相關(guān)auto 按照自動的方式進(jìn)行變量的存儲
const 定義常量或常參數(shù)
extern 聲明外部變量或函數(shù)
register 指定變量的存儲類型是寄存器變量
static 指定變量的存儲類型是靜態(tài)變量,,或指定函數(shù)是靜態(tài)函數(shù)
volatile 變量的值可能在程序的外部被改變
數(shù)據(jù)類型相關(guān)char 字符型數(shù)據(jù)
short 定義短整型變量或指針
int 整型數(shù)據(jù)
long 長整型數(shù)據(jù)
signed 有符號的整型數(shù)據(jù)
unsigned 定義無符號的整型變量或數(shù)據(jù)
float 單精度浮點型數(shù)據(jù)
double 雙精度浮點型數(shù)據(jù)
struct 結(jié)構(gòu)體型數(shù)據(jù)
enum 枚舉型類型
union 聯(lián)合型數(shù)據(jù)
void 空型數(shù)據(jù)
typedef 為數(shù)據(jù)類型定義別名
流程控制相關(guān)continue 結(jié)束本次循環(huán)進(jìn)入下一次循環(huán)
break 跳出循環(huán)或switch語句
switch 定義switch語句
case 定義switch中的case子句
default 定義switch中的default子句
do 定義do-while語句
while 定義while或do-while語句
if 定義if語句或if-else語句
else 定義if-else語句
for 定義for循環(huán)語句
goto 定義goto語句
預(yù)處理相關(guān)#include 包含頭文件
#define 定義宏
#undef 取消已經(jīng)定義的宏
#if 定義條件編譯的條件
#ifdef 定義條件編譯的條件
ifndef 定義條件編譯的條件
#elif 定義條件編譯的條件
#endif 結(jié)束條件編譯
其他return 從函數(shù)返回
運(yùn)算符優(yōu)先級 | 運(yùn)算符 | 含義 | 操作數(shù)數(shù)目 | 結(jié)合方向感 |
---|
1 | () [] -> . | 括號(函數(shù)等),,數(shù)組,兩種結(jié)構(gòu)成員訪問 | 雙目 | 左-右 | 2 | ! ~ ++ -- + - |* & (類型) sizeof | 否定,,按位取反,,自增,自減,,正負(fù)號,,間接,取址,,類型轉(zhuǎn)換,,求大小 | 單目 | 右-左 | 3 | * / % | 乘,除,,取模 | 雙目 | 左-右 | 4 | + - | 加,,減 | 雙目 | 左-右 | 5 | << >> | 左移,右移 | 雙目 | 左-右 | 6 | < <= >= > | 小于,,小于等于,,大于等于,大于 | 雙目 | 左-右 | 7 | == != | 等于,,不等于 | 雙目 | 左-右 | 8 | & | 按位與 | 雙目 | 左-右 | 9 | ^ | 按位異或 | 雙目 | 左-右 | 10 | | | 按位或 | 雙目 | 左-右 | 11 | && | 邏輯與 | 雙目 | 左-右 | 12 | || | 邏輯或 | 雙目 | 左-右 | 13 | ? : | 條件 | 三目 | 右-左 | 14 | = += -= *= /= &= ^= |= <<= >>= | 各種賦值 | 雙目 | 右-左 | 15 | , | 逗號(順序) | 雙目 | 左-右 |
() 括號運(yùn)算符,,表示一個標(biāo)識符代表一個函數(shù),fcnname(),。 還可用于劃分優(yōu)先級,,即1+23,如果不記得先算+還是先算,那就寫成1+(23)或(1+2)3,。最后,,括號還可以用于C的強(qiáng)制類型轉(zhuǎn)換。
[] 數(shù)組運(yùn)算符,,表示一個標(biāo)識符代表一個數(shù)組,,arrname[]。從數(shù)組中取一個元素,,arr[2]
-> 成員訪問,,用于通過指針變量訪問成員,ptr->member等價于(*ptr).member
. 成員訪問,訪問復(fù)合數(shù)據(jù)類型的成員
~ 按位取反,,1變0,,0變1
++ 自增運(yùn)算符,將變量自身的值加一,,分為前++和后++,,前++是先執(zhí)行自增使用增加后的值進(jìn)行運(yùn)算,后++是先進(jìn)行運(yùn)算,,語句執(zhí)行完畢后再進(jìn)行++,,效率不如前++,因為需要將變量的值臨時復(fù)制一份
* 取值運(yùn)算符,,聲明某一類型的變量,。取一個指針變量指向的值
& 取址運(yùn)算符,取一個變量的地址
<< 左移運(yùn)算符,,將操作數(shù)的二進(jìn)制數(shù)據(jù)向左移一位,,低位補(bǔ)0。當(dāng)然是對補(bǔ)碼移動,,但對原碼還是補(bǔ)碼進(jìn)行左移其結(jié)果都相當(dāng)于將數(shù)據(jù)乘以2的n次方
<< 右移運(yùn)算符,,將操作數(shù)的二進(jìn)制數(shù)據(jù)向右移一位,帶符號右移時高位補(bǔ)0,,右移n位相當(dāng)于除以2的n次方,,不帶符號時高位補(bǔ)符號位,此時非負(fù)數(shù)還是相當(dāng)于除以2的n次方,,負(fù)數(shù)就不是了
& 按位與,,有0出0,全1出1
^ 按位異或,,不同為1,,相同為0,使用異或交換兩個數(shù):a^=b;b^=a;a^=b;
| 按位或,,有1出1,,全0出0,
&& 邏輯與,,全真為真,,有假為假,C語言中用1表示負(fù)真異,,0表示非負(fù)假同
?: 條件運(yùn)算符,,C語言中唯一一個三目運(yùn)算符,,表達(dá)式A?表達(dá)式B:表達(dá)式C表示對表達(dá)式A的值進(jìn)行判斷,,如果A為真,則執(zhí)行表達(dá)式B,否則執(zhí)行表達(dá)式C
標(biāo)識符C語言里使用名稱區(qū)分不同內(nèi)容,,諸如變量名,,函數(shù)名etc這些名稱叫做標(biāo)識符(Identifier),實際開發(fā)總是采用駝峰式或者下劃線式來書寫標(biāo)識符,,標(biāo)識符的長度沒有限制,,但是編譯器只會截取一部分使用 它的編寫規(guī)則: - Keyword不能當(dāng)標(biāo)識符
- 第一個字符應(yīng)該是 英文字母、下劃線
- 后面的每個字符可以是 英文字母,、下劃線,、阿拉伯?dāng)?shù)字字符
- 大小寫敏感
|