
劉振安 劉燕君
本書將集中討論C語言的核心部分——函數設計。函數設計涉及函數類型、函數參數及返回值,這就要求讀者熟練掌握指針和數組的知識,此外,還要掌握多文件編程以及多文件之間的參數傳遞等知識。
值得一讀,特別是指針和多文件工程方面的章節!
一個變量具有3個要素:數據類型、名字和存放變量的內存地址 C語言定義的存儲類型有4種:auto、extern、static和register,分別稱爲自動型、外部型、靜態型和寄存器型。自動型變量可以省略關鍵字auto。存儲類型在類型之前,即[插圖]例如auto int和static f loat等。可以省略auto,其他類型均不可以省略。 在現在的編譯系統中,內部名字中至少前31個字符是有效的,所以應該採用直觀的名字。一般可以遵循如下簡單規律。1)使用能代表數據類型的前綴。2)名稱儘量接近變量的作用。3)如果名稱由多個英文單詞組成,每個單詞的第一個字母大寫。4)由於庫函數通常使用下劃線開頭的名字,因此不要將這類名字用作變量名。5)局部變量使用比較短的名字,尤其是循環控制變量(又稱循環位標)的名字。6)外部變量使用比較長且貼近所代表變量的含義。7)函數名字使用動詞,如Get_char(void)。變量使用名詞,如iMen_Number。變量命名可以參考Windows API編程推薦的匈牙利命名法。它是通過在數據和函數名中加入額外的信息,既增進程序員對程序的理解,又方便查錯。 在C語言中,聲明和定義兩個概念是有區別的。聲明是對一個變量的性質(如構成它的數據類型)加以說明,並不爲其分配存儲空間;而定義則是既說明一個變量的性質,又爲其分配存儲空間。 從三要素可知,既可以通過名字對變量進行操作,也可以通過地址對存放在該地址的變量進行操作。 常量只能作爲右值,而普通變量既可以作爲左值,也可以作爲右值。 系統不管是何種數據類型的指針,一律分配4字節,即各種類型的指針所佔內存的大小是一樣的。 這裏的圓括號不能省略。因爲“.”的運算優先級高於“*”;而在這裏首先要求出結構指針所指向的結構,然後再求這個結構的成員,故必須加圓括號。 2.實參函數的實際參數又稱爲“實參”,它是一個具有確定值的表達式。在進行函數調用時,要將實參賦給形參變量。例如,在【例5.5】中調用max(a, b)時,用來代替形參的a和b都是實參,在這之前變量a和b分別被賦值5.8和8.5。被調用的函數爲 一般來講,這個頭文件在項目目錄DoubleFile之下,所以應該使用雙引號。即 被定義爲外部靜態的函數只能被該函數所在的文件中的其他函數調用,而不能被其他文件中的函數調用。 6. volatile型變量volatile影響編譯器編譯的結果。如果沒有volatile關鍵字,則編譯器可能優化讀取和存儲。即在本次線程內,當讀取一個變量時,爲提高存取速度,編譯器優化時會先將變量讀取到一個寄存器中,以後再取變量值時,就直接從寄存器中取值。volatile則提醒編譯器,使用它所定義的變量隨時都有可能發生變化,因此編譯後的程序每次需要存儲或讀取這個變量的時候,都需要直接從變量地址中讀取數據。 可以將存儲區分爲代碼區、文字常量區、全局區(靜態區)、堆和棧。 這本書比較長,代碼佔內容了。我看了很久,也算一本好一點的書,如果更合我的心意一點,我應該會看的更快一點。如果你時間充足,建議細看,如果只是看看,建議結合目錄,選擇感興趣的章節閱讀。
這本書非常好,尤其指針哪裏太講的很詳細,後面還有大量的例子,但我沒做,其實c語言函數的這種方式實現起來並不太好。邏輯擴展性太差,以後用類個對象做吧
有好幾個錯誤,書中說常量就是右值,這種最基礎的錯誤都會犯 const int a=1 還說這時a就是右值,此時a明顯的左值
對有經驗的C程序員來說,這是非常好的一本書!
這本書感覺更像是好學生的課堂筆記,記錄了各種注意事項,比如使用時容易出錯的地方,概念容易混淆的地方,確實值得一讀。
越想越垃圾,尤其代碼排版,推薦C語言進階
對於初學者瞭解學習c語言指針,函數有很好的引導作用
書如其名,該書確實將c語言學習中一些難點和易錯點都說了,後面還有一些有趣的程序設計,對我這種有點基礎,還想學c的來說,是一個很好的過渡和鞏固知識的書籍。
這書講的挺好的,也着重講解了指針相關知識,順帶也給介紹了對c的趣味學習。