國內第一本伴侶書!學習譚浩強老師的《C程式設計》,必配《C程式設計伴侶》!

陳冰發表於2012-09-29

國內第一本《C程式設計伴侶》

編輯的話:為何策劃這本書

我第一次看譚老師的《C程式設計》,是20年前,那時我17歲,大學一年級。當時感覺這本書很神奇,對程式設計充滿了好奇。同時也感覺這本書有些難,有些地方,比如指標,雖然看過書,也有老師講過了,但依然感覺似懂非懂。還有些知識,書中只講了怎麼做,但沒有講為什麼要這麼做,比如為什麼所有的C程式都要有一個main()函式呢。

就這樣,帶著一些無傷大雅的困惑,時光流過20年。

2011年初,我在書店無意中看到《C程式設計》已經出到了第四版。並且在書的封面上印著1100萬冊的銷量數字,視覺效果十分震撼。我想這大約意味著有1100萬人已經讀過了這本書,其中想必會有一些和我一樣在讀書中遇到困惑的讀者吧。

考慮到1100萬的基數,我想遇到困惑的讀者大概也不在少數。考慮到這本書幾乎是所有大學新生所接觸的第一本程式設計書,其意義和重要性非同小可。這樣一想,此事未免讓人放心不下。想來想去,我決定做點什麼,為這些人做些什麼,為這本書做些什麼,從而讓這本書變得更好,讓它的廣大讀者中有困惑的那部分能減少一些困惑。

想到古典名著多有註解、譯文和批註,來幫助看不懂文言文的讀者更好地理解這些經典的古典名著。那麼,我為什麼不為《C程式設計》這本計算機的經典名著來出一本註解和批註的書呢?把原書中沒有講透徹沒有講明白的那些概念、知識和技術點來認認真真地講講清楚。進而又想,既然已經走到了註解和批註的地步,那就不妨再往前走得更遠一些吧,把原書中遺漏的、忽視的、錯誤的,以及那些未曾涉及的但作為初學者或稱為未來的程式設計師絕對應該知道的基礎知識和素養一併講講清楚。因為,有些錯誤的認識會對初學者產生深遠的影響。 這本書因《C程式設計》的存在而誕生,它是對《C程式設計》這本書的強有力的註解和補充。如同擎天柱和天火合體後,能夠沖天高飛壯志凌雲,這本書將成為《C程式設計》的強勁的噴氣引擎。

在語言風格和表現形式上,這本書比《C程式設計》更加的有趣、更加的通俗易懂。在內容上,這本書比《C程式設計》更加的深刻、更加的透徹,具有更加廣闊的視野和更加深厚的內涵。在實用性上,這本書比《C程式設計》更加的實戰,可以讓你養成良好且符合業界標準的程式設計習慣和程式設計思想,為今後的繼續前行打下必要而優秀的基礎。同時,由於這本書對概念、知識和疑難點講解地非常透徹,因此,這本書也會助你輕鬆通過C程式設計課程的考試。

我把這本書, 命名為—— 《C程式設計伴侶》。

本書策劃編輯:陳冰 2012年2月12日 

作者的話 更有趣、更容易、更深刻、更實戰的《C程式設計伴侶》—— 《C程式設計》的有力補充和最佳伴侶

在中國,幾乎每一個人,第一次接觸程式設計,都是通過譚浩強老師的《C程式設計》開始的。從某種意義上說,它是中國萬千程式設計師的啟蒙讀本。

《C程式設計》累計發行逾1100萬冊,不僅創計算機圖書的全國最高銷量紀錄,在世界上也是罕見的。這本書也因此獲得多項殊榮。 然而,這些成績仍無法掩蓋這樣一個事實:很多通過這本書學習C語言的初學者,在學習的過程中,對書中講解的內容感到晦澀生硬,難以理解和掌握;而在他們歷盡辛苦終於掌握了一些知識之後,在要使用這些知識來解決一個實際問題時,卻因情況的複雜而感到無從下手;即使是分析出了可能的切入點,又因為經驗的缺乏,在具體實施時,感到困難重重。在整本書的學習過程中,充滿了對C語言的各種概念、知識、規則的較生硬的講解,而對於打基礎階段十分重要的正確的程式設計素養、程式設計思想和程式設計技巧,卻幾乎沒有提及。

C語言雖然是高階語言,但卻是相對更接近底層的高階語言。對於第一次接觸程式設計的初學者而言,C語言,就像一座充滿魔法的強大而莊嚴的森林,沒有廣闊的視野,沒有高空的俯視,沒有稱手的地圖。直接的貿然闖入,是十分危險的。

而譚老師的《C程式設計》彷彿在只給了初學者揹包、水壺和印在門票上的小地圖的情況下,就舉著小旗把讀者帶進了這座強大的森林。

學習C語言程式設計,就像我們學習寫文章一樣。僅僅掌握了具體的詞法句法,是無法寫出優美的文章的,除了需要閱讀大量的名著外(這個毫無疑問需要時間的累積),更重要的,是你首先要在思想上真正明瞭文字的力量和掌握構造文章整體架構的技巧。

遺憾的是,譚老師的《C程式設計》教給了讀者C語言的語法,卻沒能教給讀者更好地去設計一個程式。 為了給這部經典著作彌補這一缺憾,陳冰老師策劃了這本不可思議的《伴侶》。而我很榮幸得到了具體來創作這本書的機會。

針對C語言中的重點和難點,本書進行了更加生動有趣、更加深刻,但同時又更容易理解的闡述。讀者在學習之後,不僅會對C語言中的各種知識有更加生動形象的理解,更重要的是,能夠知道程式是怎樣煉成的,在以往隔靴搔癢的表面下真正發生了什麼。並最終用C語言編寫程式加以解決,順利地完成從“問題”到“程式”的這樣一個程式設計解決問題的過程。

本書不深究C語言的語法規則,在這一方面,譚浩強老師的《C程式設計》已經講得很詳盡了。我們不會浪費時間重複發明輪子。一句話,所有《C程式設計》中已經講明白的地方,本書都不重複講解。

本書的筆墨放在了徹底講清楚難以理解的概念、重點和難點上,放在了幫助初學者建立良好的程式設計思想和符合業界標準的程式設計規範上,放在了從實際應用出發,指導初學者在實際開發和應用中遇到問題時如何思考和解決上。

讀者在學習這本《伴侶》後,不僅會因為擁有了一個從未有過的清晰的程式設計頭腦而可以輕鬆通過C程式設計課程的考試,更會因為建立起可圈可點的專業的程式設計思想而擁有更強的解決實際問題的程式設計和開發能力。

譚老師的《C程式設計》比較生硬晦澀,這本書讓它更加有趣;《C程式設計》所講解的知識難以理解,這本書讓它更加容易;《C程式設計》只注重知識的講解,這本書為它補充上基礎而寶貴的程式設計素養、程式設計思想、程式設計經驗,讓你從深處開始強大。

喝咖啡,常常會加上咖啡伴侶或是牛奶,它會遮蓋咖啡的苦澀,讓咖啡更加香醇。如果把譚浩強老師的《C程式設計》比作一杯略帶苦澀的咖啡,這本書就是它最佳的伴侶,讓你的C程式設計之路更香醇。

本書作者:陳良喬 2012年2月2日

如何使用這本書

翻開書,你會發現這本《C程式設計伴侶》(以下簡稱《伴侶》)的目錄與譚浩強老師的《C程式設計》(第四版)的目錄有些類似,但二者又有明顯的區別。事實上,準確地說,這本書的目錄是譚浩強老師的《C程式設計》目錄的超集。

也就是說,譚浩強老師的《C程式設計》的目錄中的每一個目錄都在《伴侶》中有一個與之對應的目錄,這兩個目錄的標題序號是完全一致的,但標題名並不一樣或並不完全一樣。

比如:《C程式設計》的1.4節是“最簡單的C語言程式”,與之對應的《伴侶》中的目錄就是1.4節的“第一次的親密接觸——Hello,World”。

這些目錄在《伴侶》中會以雙標題的形式出現,上層是《伴侶》中的標題,下層是《C程式設計》中的對應標題。

這樣的目錄安排,是為了讀者查閱和學習的方便。讀者可以在學習完《C程式設計》的某一章節後,帶著疑問再來看《伴侶》中對應的章節。通過《伴侶》中更加生動有趣和更加透徹的解釋,你可以更好地理解這一章節的內容,有一種豁然開朗的感覺。

除了有與《C程式設計》中一一對應的目錄外,《伴侶》中還穿插有一些特別的目錄,這些目錄的標題序號中含有字母(A、B、C、D等)。這些含有字母的目錄表示是《伴侶》額外增加的,其中的內容是《伴侶》中獨有的全新內容。

比如:《伴侶》中的1.4.A節“最簡單的C語言程式背後的故事——它的彙編程式碼是如何被執行的”就是《伴侶》中獨有的全新內容。

這些內容或者是學好C語言所必需的知識和經驗,或者是你應理解和掌握的程式設計素養和思想,而由於這些內容在《C程式設計》中完全沒有涉及,因此,作者以獨立章節的形式給以補充。當你的學習進展到相應章節的時候,可以獨立地閱讀這些章節,從而豐富你的知識、開闊你的眼界、增加你的經驗。

一句話,雙標題章節幫助消化,新增章節補充營養。

此外,當在《伴侶》中提到例x.x時指的是《C程式設計》中的例x.x。

因為《C程式設計》是以Visual C ++ 6.0作為開發工具的,所以《伴侶》在介紹開發工具的使用時,仍以Visual C++ 6.0為例,使得大家不至於太過陌生。而在編譯程式碼的時候,為了讓大家對C語言的最新發展有所瞭解,我們採用了以下兩款主流編譯器的最新版本作為我們的主要編譯器。

本書大部分程式碼都可以使用MinGW(Minimalist GNU for Windows)並新增-std=gnu99編譯選項進行編譯。或者是使用Visual Studio 2012的“VS 2012開發人員命令提示”(位於“開始→所有程式→Microsoft Visual Studio 2012→Visual Studio Tools”)下,新增/TP編譯選項進行編譯。例如,你可以使用如下的命令來編譯第一章的Hello World程式:

使用MinGW編譯: gcc –std=gnu99 HelloWorld.c -o HelloWorld.exe

使用Visual C++ 2012編譯: cl /TP HelloWorld.c

其中的少部分程式碼,因為用到了一些特殊的編譯器擴充套件,只能在“VS 2012開發人員命令提示”下進行編譯。例如第七章的簡易下載程式: cl /TP get.c

關於開發工具和原始碼的下載,以及開發環境的配置,歡迎訪問本書作者的技術支援網站: http://chenlq.net/

本書策劃編輯:陳冰 本書作者:陳良喬

致  謝

在這個世界上,從來就沒有哪一本書,是僅憑作者一己之力完成的。這本書,也同樣是在眾多老師、朋友的幫助下完成的,儘管它只是一本薄薄的小書。

在這裡,我首先要感謝譚浩強老師,您創作的《C程式設計》,是這本書的全部源頭;感謝這本書的策劃者陳冰老師,是您提出了這樣一個從未有過的新鮮創意,並給予我大量的指導。

其次,我要感謝父母的默默支援;感謝親愛的賈瑋,你的支援、鼓勵和期許,以及偶爾的打擊,都是我的動力和靈感的源泉。

最後,要感謝周靜姐姐在我重病期間給予我的鼓勵和教誨;感謝老朋友單春輝給予的關心和支援;感謝好朋友丁春利幫我收集資料;感謝好朋友馬洪旭、張瀟、崔小行、熊耀華等幫我審閱書稿,你們的意見和建議,讓這本書更有針對性,帶給讀者更多的寶貴實踐經驗;感謝Elmar Driesch先生、Andreas Muench先生及Thorsten Thomsen先生給予我的幫助和教導;在本書的創作過程中,我也參考了一些網路上的資料,在此也一併感謝這些不知名的默默無聞的分享者。

感謝所有關心我的朋友,我愛你們!

陳良喬     2011年感恩節 於 重慶

噹噹預訂地址:http://product.dangdang.com/product.aspx?product_id=22880872

相關文章