1. 程式人生 > >C語言之四書五經—C語言書籍推薦

C語言之四書五經—C語言書籍推薦

來說說C語言方面的圖書。什麼,C語言?有讀者奇怪了。沒錯,這一次的主角就是誕生於1973年如今已經兒孫滿堂的C語言。我們之所以要談及C,不僅僅是因為它的影響深遠,這完全可以從C系列語言家族的興旺發達得到證明:C++、Java和C#以及Objective C等C的子孫先後成為軟體業或者各種作業系統上的主流語言,雄霸多年,至今不衰。我們的理由主要來自C語言自身的魅力。30多年之後,它並沒有因為歲月的流逝而失色。無論是TIOBE這個程式語言風向標,還是圖書市場的銷售情況都表明,在兒女輩的C++甚至都略顯疲態的今天,C竟然是僅次於Java的第二大語言。

C語言相關的圖書雖然數量一直不少,但往往取材於相似的資料來源,總體質量不高。而從市場銷售資料的來看,許多讀者在選擇C方面的圖書時仍然比較盲目,存在一定劣幣逐良幣的情況,這在很大程度上已經成了許多軟體開發人員基礎不牢、壞毛病較多的病根之一。

經典

與其他主流語言中往往有幾部著作堪稱不可替代的經典不同,C語言的世界裡只有一本書擁有這樣無上的地位,它當然就是C語言之父Dennis Ritchie和另一位技術專家Kernighan合著的這部不朽之作:

C程式設計語言(第2版·新版)Brian W.Kernighan, Dennis M.Ritchie徐寶文 李志 譯 機械工業出版社30元

本書經常被人簡稱為“K&R C”(K和R分別是兩位作者姓氏的頭字母),它在程式設計語言圖書中的地位幾乎與C在程式設計語言中的地位相當。許多書開始用輸出“Hello World!”作為第一個例子,就是從這裡來的。有意思的是,最近又有人批評這一慣例容易使學生產生程式設計很容易的錯覺,產生了許多後續問題。雖然也言之成理,但是總有些苛刻了。

本書具有許多貝爾實驗室大師們作品的一致優點,篇幅很小,但是內容卻非常豐富,而且敘述也非常清晰。與大部分father寫的作品一樣,它主要還是針對有一定程式設計經驗的讀者而寫的,不是完全的入門讀物。當然,這也為他人編寫形形色色的入門教程留下了空間。對了,本書還有配套習題集《C程式設計語言(第2版·新版)習題解答》(機械工業出版社,2004),也有影印版。

C標準庫P. J. Plauger徐明亮等譯 人民郵電出版社(即將出版)

函式庫是程式語言的重要組成部分。但是此前出版的所有C語言著作中,對函式庫都缺乏非常全面深入的闡述。本書的出版,將很好地填補這一空白。作者是著名的C/C++專家,曾經擔任標準化委員會主席和C/C++ User's Journal

的主編。更重要的是,他本人是一位著名的函式庫開發者,為許多主流的編譯器廠家提供函式庫實現。本書幾乎做到了極致——完整給出了C標準庫的實現原始碼,並一一進行解說。這使它有了與K&R C並列的資格。

入門

我經常感到納悶的是,其實C語言方面近年來已經出了不少優秀的入門書,但是為什麼還是有很多讀者和老師放著好書不用,仍然在選擇那些已經不能適應現在要求的、問題很多的傳統主流教材甚至翻抄濫造的書呢?

總的來看,目前比較好的入門圖書有翻譯自國外的,也有國內原創的。相對而言,這些優秀教材有一個共同的優點,就是能夠緊密結合開發實戰,是為用而教、而學,而不像有些國內教材,因為作者本身往往缺乏實際軟體開發經驗,只能為教學而教學。由此帶來的特點包括:注重軟體工程,注重讀者正確程式設計習慣和風格的培養,從實戰需要出發選擇側重點,而不是平面化地去講述各個知識點。

C語言程式設計:現代方法K.N.KING呂秀鋒 譯 人民郵電出版社55元

有人稱讚本書為“近10年來最好的一部C語言著作。”已被全球200多所學校採用為教材,包括哈佛大學、麻省理工學院、斯坦福大學等諸多名校。書中對C語言主要知識點包括函式庫的涵蓋都很全面深入。有些遺憾的是,此書原版出版時間較早,無法納入C99標準的新特性。不過,新版今年已經出版了,中文版相信也會很快更新。

C程式設計經典教程:第4版Harvey M.Deitel,Paul J.Deitel聶雪軍 賀軍 清華大學出版社43元

另一部大名鼎鼎的C語言著作,教材採用也很普遍。新版涵蓋了C99。

C Primer Plus中文版(第五版)Stephen Prata人民郵電出版社60元

一本條理清晰、見解深刻的C語言教程。涵蓋C99。內容很全面。

此外,還有Stephen Kochan《C語言程式設計(第三版)》(電子工業出版社)、Eric Roberts《C語言的科學與藝術》(機械工業出版社)、Hanly和Koffman《C語言詳解(第5版)》(人民郵電出版社)等都是比較優秀的入門教材。國內近年出版的之中,哈工大蘇小紅等的《C語言大學實用教程(第2版)》(電子工業出版社)、四川大學陳良銀等的《C語言程式設計(C99版)》(清華大學出版社)是其中的佼佼者。

進階

C專家程式設計

PETER VAN DER LINDEN徐波 譯 人民郵電出版社45元

C陷阱與缺陷ANDREW KOENIG高巍 人民郵電出版社30元

C語言沒有Effective C這樣的著作,其空白大概只有這兩本書可以稍微填補,都屬於不朽經典之列。最近中文版再次出版,反響熱烈。

此外David Hanson的《C語言介面與實現:建立可重用軟體的技術》是lcc作者之一的嘔心之作,本來價值極高,但是毀在了翻譯上,無法推薦了。

實戰

C語言解惑

ALAN R. FEUER

楊濤 譯

人民郵電出版社

29元

本書內容最初是貝爾實驗室的內部培訓資料。作為C語言學習的輔導書,非常有用。

C語言名題精選百則技巧篇

冼鏡光

機械工業出版社

44元

本書作者是密歇根技術大學的教授,選材較精,而且程式碼質量也比較高。

<!--[if !supportEmptyParas]--> <!--[endif]-->

參考

C語言核心技術

Peter Prinz;Tony Crawford

O'Reilly Taiwan公司 譯

機械工業出版社

C語言參考手冊(英文影印版)(第5版)

Samuel P. Harbison, Guy L. Steele

人民郵電出版社

55元

兩本書都是優秀的查詢手冊,而且都涵蓋了C99。可惜的是,前者中文版沒有索引,廢去一半武功;後者中文版翻譯較差,只能推薦影印了。

C語言目前應用仍然非常廣泛,按道理還應該包括嵌入式系統程式設計和微控制器程式設計方面的圖書,但是一時竟找不到合適推薦的,只能空缺。讀者如果有所發現,請告我為盼。

相關推薦

C語言四書五經C語言書籍推薦

來說說C語言方面的圖書。什麼,C語言?有讀者奇怪了。沒錯,這一次的主角就是誕生於1973年如今已經兒孫滿堂的C語言。我們之所以要談及C,不僅僅是因為它的影響深遠,這完全可以從C系列語言家族的興旺發達得到證明:C++、Java和C#以及Objective C等C的子孫先後成為

菜鳥的C#學習旅——C#方法過載與函式過載

目錄 過載 方法過載 函式過載 總結 過載 過載,簡單說,就是函式或者方法有相同的名稱,但是引數列表不相同的情形,這樣的同名不同引數的函式或者方法之間,互相稱之為過載函式或者方法。 過載的

菜鳥的C#學習旅——C#跳轉語句

目錄 一、break語句 二、continue語句 三、擴充套件:比較break語句和continue語句之間的異同 四、return語句 五、throw語句 六、goto語句 七、總計 一、break語句 1.break語句:是中斷當前迴圈,或與la

菜鳥的C#學習旅——C#三大結構總結

  目錄 順序結構 一、順序執行 二、跳轉執行 選擇結構 一、if語句 二、if語句的巢狀 三、switch語句 四、switch語句的巢狀 五、if語句與switch語句相互巢狀 迴圈結構 一、while語句 二、do語句 三、

菜鳥的C#學習旅——C#概述

內容提要 -一個簡單的C#程式 -識別符號和關鍵字 -Main程式的起始點 -空白 -語句 -從程式中輸出文字 -註釋 一、一個簡單的C#程式   二、識別符號和關鍵字

C#語法{0:C}及其擴充套件

在學習ASP.NET的過程中遇到了{0,C}這樣的小知識點,好奇便研究了一下,記錄下來。 C#語法,按貨幣格式輸入第一引數。所用程式碼為{0,C}。C是Currency的簡稱。 除次之外還有一些別的格式: D或d Decimal 十進位制格式 E或e Exponent

C語言學習書籍推薦《學通C語言的24堂課》下載

下載地址:點我     編輯推薦 《學通C語言的24堂課》:用持續激勵培養良好習慣以良好習慣鑄就偉大夢想——致親愛的讀者朋友在開始學習《學通C語言的24堂課》的同時,強烈建議讀者朋友同時閱讀並踐行《世界上最偉大的推銷員》(奧格曼狄諾著)《學通C語言的24堂課》,該書書名像是

c語言學習書籍推薦C語言學習路線圖•C語言必須知道的300個問題》下載

下載地址:點我 《C語言學習路線圖•C語言必須知道的300個問題》以基礎知識為框架,介紹了c語言各部分知識所對應的常見開發疑難問題,並作了透徹地解析。《C語言學習路線圖•C語言必須知道的300個問題》內容包括初識c語言,一個簡單的c程式,演算法入門,常用資料型別,運算子與表示式,輸入/輸出函式,選擇、分

C語言學習書籍推薦C語言程式設計 現代方法(第2版)》下載

下載地址:點我 C語言仍然是計算機領域的通用語言之一,但現在的C語言已經和當初的時候大不相同了。本書主要的一個目的就是通過一種“現代方法”來介紹C語言,書中強調標準C,強調軟體工程,不再強調“手工優化”。這一版中緊密結合了C99標準,並與C89標準進行對照,補充了C99中的**新特性。本書分為C語言的基

C語言入門學習和書籍推薦

1、C語言適合當第一門程式語言學習 ①、C語言語法相對簡單,但又比較完整和嚴謹,包含該有的各種元素。學完C語言語法,要學習其它程式語言就很容易了。 ②、C語言接近底層,可以瞭解記憶體和計算機的基本原理。 ③、許多基礎課程比如演算法與資料結構教材都是以C

C語言數組

分時 一維數組 分布 效率 常量指針 指針 div pre 數組指針 六、數組: 6.1、大部分時間:數組名 == 常量指針。 6.2、 int array[10] = {1,2,3,4,5}; int *parray = array; //數組的首元素地址 int *p

C語言使用vi編寫C語言

wal shell命令 art return 當前 更多 std 編譯 常用 1. 首先進入shell命令界面,輸入: "vi hello.c" 就進入了vi編輯界面,鍵入i進入編輯狀態。可輸入程序如下: #include <stdio.h&g

C語言如何讓vim編輯器永久顯示行號

語言 打開 默認 linux環境 linu 顯示 命令行模式 c語言 mrc 在Linux環境下的編輯器有vi、vim、gedit等等。 進入這些編輯器之後,為了方便我們需要編輯器顯示出當前的行號,可偏偏編輯器默認是不會顯示行號的。 我們有二種辦法可以解決: 第一

C語言運算符和條件結構

比較運算 第三名 user 石頭 年齡 pan 註意 break -1 表達式:是有操作數和運算符組成的。 操作數:常量、變量、子表達式 X=(x+2)*(y-2); 運算符: 賦值運算符:= 。其作用是做賦值運算,將等號後邊的值賦值給等號前邊的。 復合賦值運算符: +=

C語言循環結構

style 次數 猜數遊戲 菱形 死循環 do..while *** || 初始 程序結構: 順序結構 條件結構(分支結構) if結構,if…else結構 ,多重if分支結構,switch結構 循環結構:做重復的事情 while循環,do..while循環和for循

C語言變量和數據類型

更改 地址 輸入 name style span 控制臺 標示 otto 常量:程序在運行過程中無法對值進行更改。 變量:是在計算機內存空間一種表示,聲明變量將會向計算機內存申請存儲空間,用於保存數據,計算機的CPU會從內存中加載數據。 聲明變量: 數據類型 變量名[=值

C語言文件操作07——讀取文件數據並計算均值方差標準差

取出 學生 stdio.h fscanf track white data .net += //文件 /* =============================================================== 題目:從文本文件"high.txt

C 語言結構體

ons nbsp span clas %d str style ret [] 1 #include <stdio.h> 2 3 #include <struct.h> 4 5 #include <string.h>

C語言文件操作06——寫數據到文本文件遇0停止

語言 text null white ont .net main fopen scan //文件 /* =============================================================== 題目:輸入10個籃球運動員的

C語言基本算法38—格式化輸出10000以內的全部完數

() 下一個 nbsp define -a mod 保存 基本算法 -m //窮舉法! /* ================================================================== 題目:求10000以內的全部完數