C陷阱與缺陷讀書筆記(第2章)語法「陷阱」

2021-07-02 04:01:24 字數 677 閱讀 9165

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專家程式設計...