1.任何c變數的宣告都由兩部分組成,型別以及一組類似表示式的宣告符。
2.因為宣告符與表示式類似,所以我們也可以在宣告符中任意使用括號。
3.該型別的型別轉換符得到方式:
只要把宣告中的變數名和宣告末尾的分號去掉,再將剩餘的部分用乙個括號整個封裝起來即可。
4。(*fp())就呼叫fp所指向的函式的形式。
函式運算子()的優先順序高於單目運算子*
5.對0進行做型別轉換。
轉換後的型別為 指向返回值為void型別的函式的指標。
void (*fp)() 則fp是指向返回值為void型別的函式指標。
則轉換型別為 void (*)() 則將0強制轉換(void(*)()) 0
6.可以使用typedef簡化定義型別。
typedef vodi (*funcptr)();
(*(funcptr )0)();表示0位址的函式
7.運算子的優先順序
前述,單目,雙目,三目,賦值,逗號
其中三目,單目,賦值是從右向左。
雙目中 算術,移位,關係,邏輯(邏輯按位大於順序)
8.case如果沒有break語句,應該用分號說明。
9.在函式呼叫時即使函式不帶引數,也應該包括引數列表。
10.else始終與統一對括號內最近未匹配的if結合。
C陷阱與缺陷讀書筆記(第3章)語義「陷阱」
1.c語言只有一維陣列,而且陣列的大小必須在編譯器就作為乙個常數確定下來。2.任何乙個陣列下標進行運算的,實際上都是通過指標進行。3.int calendar 12 31 calendar是乙個陣列,該陣列包含12個陣列型別的元素,其中每個元素都是乙個擁有31個整型元素的陣列。4.除了陣列名a 被用...
《C陷阱與缺陷》讀書筆記2
第二章 語法陷阱 2 1 理解函式宣告 任何c變數的宣告都由兩部分組成 型別以及一組類似表示式的宣告符 declarator float g h 表示 g 與 h 是浮點表示式。因為 結合優先順序高於 g 也就是 g g是乙個函式,該函式的返回值型別為指向浮點數的指標。同理,可以得出h是乙個函式指標...
《C缺陷與陷阱》讀書筆記
一 為什麼很多程式設計規範上要求單字元符號兩邊用空格隔開呢?如 a 2 最好不要寫成 a 2 在 c陷阱與缺陷 中詞法陷阱部分講到 如y x p,原本想表達的意思是p指標指向除數,但實際編譯過程中,編譯器會將 理解為一段注釋的開始,編譯器將不斷地讀入字元,直到 出現為止 這一錯誤也在 c專家程式設計...