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