濃縮版 《C和指針》基礎篇(Chpt.1~Chpt.9)
濃縮版《C和指針》基礎篇(Chpt.1~Chpt.9)
導語
近日,筆者在課業之余閱讀了《C和指針(Pointers on C)》 (by Kenneth A.Reek)一書,從中記錄了關於C語言的諸多知識點,包括在C語言基礎特性的學習過程中沒有涉及到的基本方面,以及與指針相關的進階話題。
由於初次記錄過程中有諸多不詳細之處,故將其中內容重新整理如下,方便今後查看,也希望能給需要這方面知識但沒有足夠時間閱讀原書的朋友提供一點幫助。(當然,文中只記錄了初次學習C語言特性過程中沒有過多涉及的內容。基本的語法、數據類型等知識不再進行記錄。)
這一部分,是書中內容的前九章,相對較為基礎,是C語言基本特性的輕度延伸,故合為一篇,記為基礎篇。
目錄
Chpt.1 快速上手(講述C語言程序的編譯等基本內容,本文不作記錄)
Chpt.2 基本概念
Chpt.3 數據
Chpt.4 語句 (講解C語言中的基本語句,包括if, for, while等,本文不作記錄)
Chpt.5 操作符和表達式
Chpt.6 指針
Chpt.7 函數
Chpt.8 數組
Chpt.9 字符串、字符和字節
下面,進入正式的內容。
Chpt.2 基本概念
1. 關於編程風格:
(1)if, while等語句以及函數名之後的括號從屬於之前的內容(即if, while等),而不屬於括號中的內容,故應在括號中內容兩端留一個**空格**。如:
1 if ( a != 3 ) 2 { 3 // .... 4 } 5 while ( 1 ) 6 { 7 // .... 8 } 9 strcmp( dst, src );
(2)使用[Tab]而不是空格做好**縮進**。
(3)絕大多數**註釋**應該成塊出現,從而在視覺上更突出。
(4)操作符使用時大多隔以空格,但操作符太多時可以省略部分空格以突出層次。
(5)不同人的代碼風格可能略有差別,但盡量始終使用同一種較好的風格。
2. 關於註釋
塊註釋(即/\* ... \*/)不能嵌套使用。因為註釋會在第一個\*/處結束,導致兩個\*/之間的內容(包括第二個*/)不再被認為是註釋。
3. 關於字符
(1)三字母詞:標準C中定義了一些三字母詞(trigrph),即三個字符的序列用以表示另一個字符。具體如下:
??( : [
??) : ]
??! : |
??< : {
??> : }
??‘ : ^
??= : #
??/ : \
??- : ~
也就是說,應當盡量避免兩個問號連續出現的情形。出現時,可用“\?”表示“?”
(2)字符串中引號的表示:在字符串中應使用\"表示雙引號。
(3)可用\ddd表示八進制下的ddd作為ASCII碼所對應的字符,同理\xddd表示十六進制的情況。
Chpt.3 數據
濃縮版 《C和指針》基礎篇(Chpt.1~Chpt.9)