1. static: 修飾區域性變數(只在初次執行時,進行初始化工作) 全域性變數(只是本.c檔案可見) 函式(類似於全域性變數)
2. extern:編譯器並不匹配extern的函式的引數列表,只做函式名匹配!
3. typedef:重定義過的資料型別,對於typedef char* newc; newc a,b;,這時候會將a b都定義為char *,而使用char *a,b或者define獲得效果都是只能把a定義為char *,而b還是char而已
4. typedef char * ptrc; const ptrc p2 = string; 這裡並不是和define效果一樣,簡單的替換,而是變為const 修飾了p2這個指標變數是常量。
5. #define的好處:可以使用ifndef undef ifdef等;唉進行邏輯判斷。
6. typedef的好處:定義的變數型別範圍被限制在所定義的函式或者檔案內。
7. int *( *(*fp) (int))[10]; 解釋:fp是乙個函式指標,指向乙個形參為乙個int型資料的,返回值是乙個指向有10個指標的指標陣列的指標,該指指標陣列裡的每乙個元素指向乙個整型。
8. int *(*(*arr[5])( ))( ); 解釋:arr是函式指標陣列,陣列中每個元素指向乙個形參為空,返回值是乙個指向函式指標的指標,該函式形參為空,返回值為int型。
9. float (*(*b( )) [ ])( ); 解釋:b是乙個函式指標,該函式引數為空,返回值指向乙個函式指標陣列,陣列中的每乙個元素都指向乙個函式引數為空,返回float型的函式。
10. float( *(*e[10])(int *))[5]; 解釋:e是函式指標陣列,每個元素指標指向乙個函式引數為int *,返回值指向乙個陣列指標,陣列大小為5,型別為float的函式。
11. sizeof a/(a) 而 sizeof(int)必須加括號
12. 為什麼乙個位元組的範圍為 -2^7 – 2^7-1 ? 補碼表示,-128取反加一,得到數字就是最小,而整數取反加一是本身,而且最高位為符號位,所以最大為2^7-1
13. unsigned int + int ->unsigned int
14. struct student str = ;可以這樣初始化
15. 結構體大小:以最長的成員長度進行分配(無論這個最長的成員位於什麼位置,整個結構體為每個變數分配的長度就是最長的位元組數)
struct
stu
; 大小為16 = (4 + 1) + 8 = 8 + 8
16. 結構體成員後為; 列舉成員後為, 聯合union 成員後為;
17. 列舉和#define的區別:1)#define 在預編譯階段進行簡單的替換,列舉常量則是在編譯的時候確定其值; 2)一般在編譯器裡,可以除錯列舉常量,但是不能除錯巨集常量; 3)列舉一次可以定義大量相關的常量,而define只能一次定義乙個。
18. 列舉的大小:一般為4個位元組,為乙個整型int的大小,和其中的常量個數無關,因為是常量,所以不具有記憶體空間大小。
19. 聯合體的大小:取聯合中最長的成員長度,注意對齊方式vs2013採用以最短成員為對齊長度!!!!
C語言部分關鍵字
void char int float double short long signed unsigned struct union enum typedef sizeof auto static register extern const volatile return continue brea...
c語言部分關鍵字簡析
一 sizeof c語言中判斷資料型別或者表示式長度符。用法有 sizeof type name sizeof object sizeof object int i sizeof int sizeof i sizeof i sizeof與strlen strlen計算不包含 0 null 的字串長度...
部分關鍵字
final 修飾類,則類不允許被繼承 修飾變數,則變數為常量,不允許被再次賦值 修飾方法,則方法不允許被重寫 修飾屬性,則類的屬性不會進行隱式的初始化,也就是類的初始化屬性必須有值,或者要在構造方法中賦值,但只能選其一。super 在子類使用,可代表父類物件,如在子類student中有方法 publ...