《c語言深度剖析》讀書筆記(二)符號

2021-10-05 11:25:10 字數 1424 閱讀 1399

本文是自己讀書的時候一些關於該書的重點及感悟

目錄

1、注釋符號

2、接續符和轉義符

3、單引號和雙引號

4、邏輯運算子

5、位運算子

6、花括號

7、++ --操作符

8、c語言除法

9、符號優先順序

(1)c 語言裡可以有兩種注釋方式:/* */ 和//,編譯器在編譯程式時的確會將注釋剔除,但不是簡單的剔除,而是用空格代替原來的注釋。

(2)/*…*/這種形式的注釋不能巢狀,如:/*這是/*非法的*/*/ 因為/*總是與離它最近的*/匹配。

(3)只要斜槓(/)和星號(*)之間沒有空格,都會被當作注釋的開始。這一點一定要注意,要把*號作為指標使用時一定要在/後面加空格。

(5)對於全域性資料(全域性變數、常量定義等)必須要加注釋。

(6)注釋**段時應注重「為何做(why)」,而不是「怎麼做(how)」。

(1)反斜槓作為接續符時,之後不能有空格,反斜槓的下一行之前也不能有空格。(實測後發現反斜槓的下一行之前後空格,也可以編譯通過,比較奇怪,不知道是不是和編譯軟體有關係)

(1)字元在記憶體裡是以 ascaii 碼儲存的,所以字元常量可以與整形常量或變數進行運算。

(1)邏輯運算子||兩邊的條件只要有乙個為真,其結果就為真;只要有乙個結果為假,其結果就為假。if((++i>0)||(++j>0))語句中,先計算(++i>0),發現其結果為真,後面的(++j>0)便不再計算。

(這塊書中的書寫有誤,只要有乙個結果為假,其結果不一定為假,因為後乙個條件可能為真,後乙個條件為真的話,整個判斷結果為真)

(2)對於有符號數,在右移時,符號位將隨同移動。當為正數時, 最高位補 0;而為負數時,符號位為 1,最高位是補 0 或是補 1 取決於編譯系統的規定。turbo c 和很多系統規定為補 1。

(3)左移和右移的位數不能大於資料長度,不能小於0,不然資料會發生溢位

(1)簡單來說花括號的作用就是打包。用花括號是為了把一些語句或**打個包包起來,使之形成乙個整體,並與外界絕緣。

(1)c 語言有這樣乙個規則:每乙個符號應該包含盡可能多的字元。也就是說,編譯器將程

序分解成符號的方法是,從左到右乙個乙個字元地讀入,如果該字元可能組成乙個符號,

那麼再讀入下乙個字元,判斷已經讀入的兩個字元組成的字串是否可能是乙個符號的組

成部分;

(1)c 語言或者其他語言在實現整數除法截斷運算時,要求餘數與被除數的正負號相同。

(1).的優先順序高於* ,->操作符用於消除這個問題

(2)高於*

(3)函式()高於*

(4)== 和!=高於位操作

(5)== 和!=高於賦值符

(6)算術運算子高於位移運算子

(7)逗號運算子在所有運算子中優先順序最低

《c語言深度剖析》讀書筆記(六)函式

本文是自己讀書的時候一些關於該書的重點及感悟 目錄 1 函式的好處 2 編碼風格 3 函式設計的一般原則和技巧 4 遞迴 1 降低複雜性 2 避免 重複 3 限制改動帶來的影響 4 隱含順序 5 改進效能 6 進行集中控制 7 隱含資料結構 8 隱含指標操作 9 隱藏全域性變數 1 每乙個函式都必須...

C語言深度解剖(第二章 符號讀書筆記)

2.1 注釋符號 c語言注釋有兩種 和 其中 編譯器剔除注釋 時會將 變為空格。特別注意 這種注釋不能巢狀,總是與離它最近的 匹配 2.2 連續符和轉義符 c語言裡以反斜槓 表示斷行。編譯器會將反斜槓剔除掉,跟在反斜槓後面的字元自動接續到前一行。但是注意 反斜槓之後不能有空格,反斜槓的下一行之前也不...

C語言深度剖析學習筆記 符號

1.預處理時,編譯器會使用空格替換,所以 in t i 0 是錯誤的,gcc e 編譯後變成 in t i 0 2.y x p 不等於 y x p,因為編譯器解析語法的時候,是從左到右,找最長的有意義的單元,對於第二段 編譯器找到x後繼續往後找,判斷 x 是否是合法的識別符號或者關鍵字,發現不是,於...