出版時(shí)間:2012-10 出版社:人民郵電出版社 作者:陳良喬 頁數(shù):315 字?jǐn)?shù):534000
Tag標(biāo)簽:無
前言
編輯的話:為何策劃這本書我第一次看譚老師的《C程序設(shè)計(jì)》,是20年前,那時(shí)我17歲,大學(xué)一年級(jí)。當(dāng)時(shí)感覺這本書很神奇,對(duì)編程充滿了好奇。同時(shí)也感覺這本書有些難,有些地方,比如指針,雖然看過書,也有老師講過了,但依然感覺似懂非懂。還有些知識(shí),書中只講了怎么做,但沒有講為什么要這么做,比如為什么所有的C程序都要有一個(gè)main()函數(shù)呢。就這樣,帶著一些無傷大雅的困惑,時(shí)光流過20年。2011年初,我在書店無意中看到《C程序設(shè)計(jì)》已經(jīng)出到了第四版。并且在書的封面上印著1100萬冊(cè)的銷量數(shù)字,視覺效果十分震撼。我想這大約意味著有1100萬人已經(jīng)讀過了這本書,其中想必會(huì)有一些和我一樣在讀書中遇到困惑的讀者吧??紤]到1100萬的基數(shù),我想遇到困惑的讀者大概也不在少數(shù)??紤]到這本書幾乎是所有大學(xué)新生所接觸的第一本編程書,其意義和重要性非同小可。這樣一想,此事未免讓人放心不下。想來想去,我決定做點(diǎn)什么,為這些人做些什么,為這本書做些什么,從而讓這本書變得更好,讓它的廣大讀者中有困惑的那部分能減少一些困惑。想到古典名著多有注解、譯文和批注,來幫助看不懂文言文的讀者更好地理解這些經(jīng)典的古典名著。那么,我為什么不為《C程序設(shè)計(jì)》這本計(jì)算機(jī)的經(jīng)典名著來出一本注解和批注的書呢?把原書中沒有講透徹沒有講明白的那些概念、知識(shí)和技術(shù)點(diǎn)來認(rèn)認(rèn)真真地講講清楚。進(jìn)而又想,既然已經(jīng)走到了注解和批注的地步,那就不妨再往前走得更遠(yuǎn)一些吧,把原書中遺漏的、忽視的、錯(cuò)誤的,以及那些未曾涉及的但作為初學(xué)者或稱為未來的程序員絕對(duì)應(yīng)該知道的基礎(chǔ)知識(shí)和素養(yǎng)一并講講清楚。因?yàn)?,有些錯(cuò)誤的認(rèn)識(shí)會(huì)對(duì)初學(xué)者產(chǎn)生深遠(yuǎn)的影響。這本書因《C程序設(shè)計(jì)》的存在而誕生,它是對(duì)《C程序設(shè)計(jì)》這本書的強(qiáng)有力的注解和補(bǔ)充。如同擎天柱和天火合體后,能夠沖天高飛壯志凌云,這本書將成為《C程序設(shè)計(jì)》的強(qiáng)勁的噴氣引擎。在語言風(fēng)格和表現(xiàn)形式上,這本書比《C程序設(shè)計(jì)》更加的有趣、更加的通俗易懂。在內(nèi)容上,這本書比《C程序設(shè)計(jì)》更加的深刻、更加的透徹,具有更加廣闊的視野和更加深厚的內(nèi)涵。在實(shí)用性上,這本書比《C程序設(shè)計(jì)》更加的實(shí)戰(zhàn),可以讓你養(yǎng)成良好且符合業(yè)界標(biāo)準(zhǔn)的編程習(xí)慣和編程思想,為今后的繼續(xù)前行打下必要而優(yōu)秀的基礎(chǔ)。同時(shí),由于這本書對(duì)概念、知識(shí)和疑難點(diǎn)講解地非常透徹,因此,這本書也會(huì)助你輕松通過C程序設(shè)計(jì)課程的考試。我把這本書,命名為——《C程序設(shè)計(jì)伴侶》。本書策劃編輯:陳冰2012年2月12日作者的話更有趣、更容易、更深刻、更實(shí)戰(zhàn)的《C程序設(shè)計(jì)伴侶》——《C程序設(shè)計(jì)》的有力補(bǔ)充和最佳伴侶在中國(guó),幾乎每一個(gè)人,第一次接觸程序設(shè)計(jì),都是通過譚浩強(qiáng)老師的《C程序設(shè)計(jì)》開始的。從某種意義上說,它是中國(guó)萬千程序員的啟蒙讀本?!禖程序設(shè)計(jì)》累計(jì)發(fā)行逾1100萬冊(cè),不僅創(chuàng)計(jì)算機(jī)圖書的全國(guó)最高銷量紀(jì)錄,在世界上也是罕見的。這本書也因此獲得多項(xiàng)殊榮。然而,這些成績(jī)?nèi)詿o法掩蓋這樣一個(gè)事實(shí):很多通過這本書學(xué)習(xí)C語言的初學(xué)者,在學(xué)習(xí)的過程中,對(duì)書中講解的內(nèi)容感到晦澀生硬,難以理解和掌握;而在他們歷盡辛苦終于掌握了一些知識(shí)之后,在要使用這些知識(shí)來解決一個(gè)實(shí)際問題時(shí),卻因情況的復(fù)雜而感到無從下手;即使是分析出了可能的切入點(diǎn),又因?yàn)榻?jīng)驗(yàn)的缺乏,在具體實(shí)施時(shí),感到困難重重。在整本書的學(xué)習(xí)過程中,充滿了對(duì)C語言的各種概念、知識(shí)、規(guī)則的較生硬的講解,而對(duì)于打基礎(chǔ)階段十分重要的正確的編程素養(yǎng)、編程思想和編程技巧,卻幾乎沒有提及。C語言雖然是高級(jí)語言,但卻是相對(duì)更接近底層的高級(jí)語言。對(duì)于第一次接觸編程的初學(xué)者而言,C語言,就像一座充滿魔法的強(qiáng)大而莊嚴(yán)的森林,沒有廣闊的視野,沒有高空的俯視,沒有稱手的地圖。直接的貿(mào)然闖入,是十分危險(xiǎn)的。而譚老師的《C程序設(shè)計(jì)》仿佛在只給了初學(xué)者背包、水壺和印在門票上的小地圖的情況下,就舉著小旗把讀者帶進(jìn)了這座強(qiáng)大的森林。學(xué)習(xí)C語言程序設(shè)計(jì),就像我們學(xué)習(xí)寫文章一樣。僅僅掌握了具體的詞法句法,是無法寫出優(yōu)美的文章的,除了需要閱讀大量的名著外(這個(gè)毫無疑問需要時(shí)間的累積),更重要的,是你首先要在思想上真正明了文字的力量和掌握構(gòu)造文章整體架構(gòu)的技巧。遺憾的是,譚老師的《C程序設(shè)計(jì)》教給了讀者C語言的語法,卻沒能教給讀者更好地去設(shè)計(jì)一個(gè)程序。為了給這部經(jīng)典著作彌補(bǔ)這一缺憾,陳冰老師策劃了這本不可思議的《伴侶》。而我很榮幸得到了具體來創(chuàng)作這本書的機(jī)會(huì)。針對(duì)C語言中的重點(diǎn)和難點(diǎn),本書進(jìn)行了更加生動(dòng)有趣、更加深刻,但同時(shí)又更容易理解的闡述。讀者在學(xué)習(xí)之后,不僅會(huì)對(duì)C語言中的各種知識(shí)有更加生動(dòng)形象的理解,更重要的是,能夠知道程序是怎樣煉成的,在以往隔靴搔癢的表面下真正發(fā)生了什么。并最終用C語言編寫程序加以解決,順利地完成從“問題”到“程序”的這樣一個(gè)編程解決問題的過程。本書不深究C語言的語法規(guī)則,在這一方面,譚浩強(qiáng)老師的《C程序設(shè)計(jì)》已經(jīng)講得很詳盡了。我們不會(huì)浪費(fèi)時(shí)間重復(fù)發(fā)明輪子。一句話,所有《C程序設(shè)計(jì)》中已經(jīng)講明白的地方,本書都不重復(fù)講解。本書的筆墨放在了徹底講清楚難以理解的概念、重點(diǎn)和難點(diǎn)上,放在了幫助初學(xué)者建立良好的編程思想和符合業(yè)界標(biāo)準(zhǔn)的編程規(guī)范上,放在了從實(shí)際應(yīng)用出發(fā),指導(dǎo)初學(xué)者在實(shí)際開發(fā)和應(yīng)用中遇到問題時(shí)如何思考和解決上。讀者在學(xué)習(xí)這本《伴侶》后,不僅會(huì)因?yàn)閾碛辛艘粋€(gè)從未有過的清晰的編程頭腦而可以輕松通過C程序設(shè)計(jì)課程的考試,更會(huì)因?yàn)榻⑵鹂扇牲c(diǎn)的專業(yè)的編程思想而擁有更強(qiáng)的解決實(shí)際問題的程序設(shè)計(jì)和開發(fā)能力。譚老師的《C程序設(shè)計(jì)》比較生硬晦澀,這本書讓它更加有趣;《C程序設(shè)計(jì)》所講解的知識(shí)難以理解,這本書讓它更加容易;《C程序設(shè)計(jì)》只注重知識(shí)的講解,這本書為它補(bǔ)充上基礎(chǔ)而寶貴的編程素養(yǎng)、編程思想、編程經(jīng)驗(yàn),讓你從深處開始強(qiáng)大。喝咖啡,常常會(huì)加上咖啡伴侶或是牛奶,它會(huì)遮蓋咖啡的苦澀,讓咖啡更加香醇。如果把譚浩強(qiáng)老師的《C程序設(shè)計(jì)》比作一杯略帶苦澀的咖啡,這本書就是它最佳的伴侶,讓你的C程序設(shè)計(jì)之路更香醇。本書作者:陳良喬2012年2月2日如何使用這本書翻開書,你會(huì)發(fā)現(xiàn)這本《C程序設(shè)計(jì)伴侶》(以下簡(jiǎn)稱《伴侶》)的目錄與譚浩強(qiáng)老師的《C程序設(shè)計(jì)》(第四版)的目錄有些類似,但二者又有明顯的區(qū)別。事實(shí)上,準(zhǔn)確地說,這本書的目錄是譚浩強(qiáng)老師的《C程序設(shè)計(jì)》目錄的超集。也就是說,譚浩強(qiáng)老師的《C程序設(shè)計(jì)》的目錄中的每一個(gè)目錄都在《伴侶》中有一個(gè)與之對(duì)應(yīng)的目錄,這兩個(gè)目錄的標(biāo)題序號(hào)是完全一致的,但標(biāo)題名并不一樣或并不完全一樣。比如:《C程序設(shè)計(jì)》的1.4節(jié)是“最簡(jiǎn)單的C語言程序”,與之對(duì)應(yīng)的《伴侶》中的目錄就是1.4節(jié)的“第一次的親密接觸——Hello,World”。這些目錄在《伴侶》中會(huì)以雙標(biāo)題的形式出現(xiàn),上層是《伴侶》中的標(biāo)題,下層是《C程序設(shè)計(jì)》中的對(duì)應(yīng)標(biāo)題。這樣的目錄安排,是為了讀者查閱和學(xué)習(xí)的方便。讀者可以在學(xué)習(xí)完《C程序設(shè)計(jì)》的某一章節(jié)后,帶著疑問再來看《伴侶》中對(duì)應(yīng)的章節(jié)。通過《伴侶》中更加生動(dòng)有趣和更加透徹的解釋,你可以更好地理解這一章節(jié)的內(nèi)容,有一種豁然開朗的感覺。除了有與《C程序設(shè)計(jì)》中一一對(duì)應(yīng)的目錄外,《伴侶》中還穿插有一些特別的目錄,這些目錄的標(biāo)題序號(hào)中含有字母(A、B、C、D等)。這些含有字母的目錄表示是《伴侶》額外增加的,其中的內(nèi)容是《伴侶》中獨(dú)有的全新內(nèi)容。比如:《伴侶》中的1.4.A節(jié)“最簡(jiǎn)單的C語言程序背后的故事——它的匯編代碼是如何被執(zhí)行的”就是《伴侶》中獨(dú)有的全新內(nèi)容。這些內(nèi)容或者是學(xué)好C語言所必需的知識(shí)和經(jīng)驗(yàn),或者是你應(yīng)理解和掌握的編程素養(yǎng)和思想,而由于這些內(nèi)容在《C程序設(shè)計(jì)》中完全沒有涉及,因此,作者以獨(dú)立章節(jié)的形式給以補(bǔ)充。當(dāng)你的學(xué)習(xí)進(jìn)展到相應(yīng)章節(jié)的時(shí)候,可以獨(dú)立地閱讀這些章節(jié),從而豐富你的知識(shí)、開闊你的眼界、增加你的經(jīng)驗(yàn)。一句話,雙標(biāo)題章節(jié)幫助消化,新增章節(jié)補(bǔ)充營(yíng)養(yǎng)。此外,當(dāng)在《伴侶》中提到例x.x時(shí)指的是《C程序設(shè)計(jì)》中的例x.x。因?yàn)椤禖程序設(shè)計(jì)》是以Visual C ++ 6.0作為開發(fā)工具的,所以《伴侶》在介紹開發(fā)工具的使用時(shí),仍以Visual C++ 6.0為例,使得大家不至于太過陌生。而在編譯代碼的時(shí)候,為了讓大家對(duì)C語言的最新發(fā)展有所了解,我們采用了以下兩款主流編譯器的最新版本作為我們的主要編譯器。本書大部分代碼都可以使用MinGW(Minimalist GNU for Windows)并添加-std=gnu99編譯選項(xiàng)進(jìn)行編譯?;蛘呤鞘褂肰isual Studio 2012的“VS 2012開發(fā)人員命令提示”(位于“開始→所有程序→Microsoft Visual Studio 2012→Visual Studio Tools”)下,添加/TP編譯選項(xiàng)進(jìn)行編譯。例如,你可以使用如下的命令來編譯第一章的Hello World程序:使用MinGW編譯:gcc –std=gnu99 HelloWorld.c -o HelloWorld.exe使用Visual C++ 2012編譯:cl /TP HelloWorld.c其中的少部分代碼,因?yàn)橛玫搅艘恍┨厥獾木幾g器擴(kuò)展,只能在“VS 2012開發(fā)人員命令提示”下進(jìn)行編譯。例如第七章的簡(jiǎn)易下載程序:cl /TP get.c關(guān)于開發(fā)工具和源代碼的下載,以及開發(fā)環(huán)境的配置,歡迎訪問本書作者的技術(shù)支持網(wǎng)站:http://chenlq.net/本書策劃編輯:陳冰本書作者:陳良喬
內(nèi)容概要
本書是譚浩強(qiáng)老師經(jīng)典的《C
程序設(shè)計(jì)》(以下簡(jiǎn)稱原書)一書的最佳伴侶,是對(duì)原書有益且神奇的補(bǔ)充。本書對(duì)原書中沒有講透徹的沒有講明白的那些概念、知識(shí)和技術(shù)點(diǎn)進(jìn)行了深刻卻易于理解的講解,并把原書中遺漏的、忽視的,甚至是多少有點(diǎn)問題的,以及那些未曾涉及的但作為初學(xué)者或稱為未來的程序員絕對(duì)應(yīng)該知道的基礎(chǔ)知識(shí)、編程素養(yǎng)、編程思想,以及業(yè)內(nèi)行規(guī)一并講解清楚了。
較之原書,這本伴侶更加的有趣、更加的通俗易懂。在內(nèi)容上,較之原書,這本伴侶更加的深刻、更加的透徹,具有更加廣闊的視野和更加深厚的內(nèi)涵。在實(shí)用性上,這本伴侶較之原書更加的實(shí)戰(zhàn),可以讓你養(yǎng)成良好且符合業(yè)界標(biāo)準(zhǔn)的編程習(xí)慣和編程思想,為今后的繼續(xù)前行打下必要而優(yōu)秀的基礎(chǔ)。
作者簡(jiǎn)介
陳良喬
一個(gè)喜歡寫作的程序員。一個(gè)喜歡編程的文藝青年。連續(xù)八年獲得微軟最有價(jià)值專家(MVP)稱號(hào)。曾任東軟數(shù)字醫(yī)療項(xiàng)目經(jīng)理;德國(guó)IB&T中國(guó)公司架構(gòu)師。摯愛技術(shù),好分享。作為講師進(jìn)行百人以上微軟技術(shù)講座數(shù)十次。因撰寫一系列有分量的Visual
Studio和Windows 7技術(shù)文章榮獲“MSDN原創(chuàng)之星”稱號(hào)。因參與Visual
Studio的工作,榮獲“Visual
Studio貢獻(xiàn)水晶獎(jiǎng)杯”。生性樂觀,敏而好學(xué),樂于分享。平素喜好新鮮事物,但絕非新潮技術(shù)的追捧者,至今仍執(zhí)迷C/C++這些古老而新鮮的技術(shù)。好舞文弄墨,傳播心得。著有《我的第一本C++書》。組織并參與翻譯《C++
11 FAQ中文版》。
作者網(wǎng)站(及本書源代碼下載地址):http://chenlq.net
歡迎親愛的讀者們?cè)L問交流
書籍目錄
注:淺灰色的目錄標(biāo)題是本書所對(duì)應(yīng)的譚浩強(qiáng)《C程序設(shè)計(jì)》(第四版)中的相應(yīng)章節(jié)的目錄標(biāo)題。
第1章 C語言背后的故事程序設(shè)計(jì)和C語言
1.1 計(jì)算機(jī)程序是什么什么是計(jì)算機(jī)程序
1.2 計(jì)算機(jī)語言又是什么什么是計(jì)算機(jī)語言
1.2.A 如何用計(jì)算機(jī)語言來表達(dá)一個(gè)程序
1.2.B 從匯編語言到高級(jí)語言——風(fēng)格各異的計(jì)算機(jī)語言
1.3 C語言真正的特點(diǎn)及其演變 C語言的發(fā)展及其特點(diǎn)
1.3A C語言與C++不得不說的那點(diǎn)事
1.3B 我們?yōu)槭裁船F(xiàn)在還要學(xué)習(xí)C語言
1.4 第一次的親密接觸——Hello,World 最簡(jiǎn)單的C語言程序
1.4.A 最簡(jiǎn)單的C語言程序背后的故事——它的匯編代碼是如何被執(zhí)行的
1.4.1 比最簡(jiǎn)單再?gòu)?fù)雜一點(diǎn)點(diǎn)最簡(jiǎn)單的C語言程序舉例
1.4.2 程序的三要素:數(shù)據(jù)輸入、數(shù)據(jù)處理與數(shù)據(jù)輸出 C語言程序的結(jié)構(gòu)
1.4.B 編碼規(guī)范——如何寫出簡(jiǎn)潔優(yōu)美的代碼
1.5 C程序開發(fā)的兩個(gè)循環(huán)和四個(gè)步驟運(yùn)行C程序的步驟與方法
1.5A 工欲善其事,必先利其器——使用Eclipse編寫C程序
1.5B 使用GCC編譯C語言程序
1.6 程序設(shè)計(jì)的瀑布模型程序設(shè)計(jì)的任務(wù)
第2章 解決問題的思路——算法算法——程序的靈魂
2.1 先有算法,后有程序什么是算法
2.1A 算法的時(shí)間復(fù)雜度和空間復(fù)雜度
2.2 如何將抽象的算法實(shí)現(xiàn)為具體的代碼簡(jiǎn)單的算法舉例
2.3 算法的特征——簡(jiǎn)單,沒啥可說的算法的特性
2.4 一群聰明的程序員是怎么把事情搞砸的怎樣表示一個(gè)算法
2.5 掌握結(jié)構(gòu)化的程序設(shè)計(jì)結(jié)構(gòu)化程序設(shè)計(jì)方法
2.5A 結(jié)構(gòu)化程序設(shè)計(jì)的基本思想、步驟與流程
2.5B“自頂向下,逐步求精”:把“問題”變成“程序”的魔法
第3章 順序結(jié)構(gòu)的程序設(shè)計(jì)最簡(jiǎn)單的C程序設(shè)計(jì)——順序程序設(shè)計(jì)
3.1 順序結(jié)構(gòu)程序舉例——簡(jiǎn)單,沒啥可說的順序程序設(shè)計(jì)舉例
3.1A 如何理解程序的執(zhí)行順序
3.2 如何描述數(shù)據(jù),如何對(duì)數(shù)據(jù)進(jìn)行運(yùn)算數(shù)據(jù)的表現(xiàn)形式及其運(yùn)算
3.2.1 常量、變量、常變量及符號(hào)常量和變量
3.2.2 數(shù)據(jù)類型及舉例 數(shù)據(jù)類型
3.2.3 整型數(shù)據(jù)及如何選擇合適的類型整型數(shù)據(jù)
3.2.4 字符型數(shù)據(jù)及舉例字符型數(shù)據(jù)
3.2.5 浮點(diǎn)型數(shù)據(jù)及比較大小時(shí)的特別注意浮點(diǎn)型數(shù)據(jù)
3.2.6 如何強(qiáng)制指定常量的數(shù)據(jù)類型怎樣確定常量的類型
3.2.7 運(yùn)算符和表達(dá)式及使用經(jīng)驗(yàn)和建議運(yùn)算符和表達(dá)式
3.3 基本程序單位——語句 C語句
3.3.1 C語言的語句分類 C語句的作用和分類
3.3.2 賦值語句及其使用注意最基本的語句——賦值語句
3.4 數(shù)據(jù)從哪里來,又到哪里去?數(shù)據(jù)的輸入輸出
3.4.1 輸入輸出舉例——簡(jiǎn)單,沒啥可說的輸入輸出舉例
3.4.2 輸入輸出的概念——簡(jiǎn)單,沒啥可說的有關(guān)數(shù)據(jù)輸入輸出的概念
3.4.3 使用printf函數(shù)進(jìn)行格式化數(shù)據(jù)輸出用printf函數(shù)輸出數(shù)據(jù)
3.4.4 使用scanf函數(shù)進(jìn)行格式化數(shù)據(jù)輸入用scanf函數(shù)輸入數(shù)據(jù)
3.4.5 單字符的輸入輸出及敏感信息輸入函數(shù)字符數(shù)據(jù)的輸入輸出
3.4.5A 字符串?dāng)?shù)據(jù)的簡(jiǎn)單輸入輸出
第4章 選擇結(jié)構(gòu)的程序設(shè)計(jì)選擇結(jié)構(gòu)程序設(shè)計(jì)
4.1 選擇結(jié)構(gòu)和條件判斷——交通燈例子選擇結(jié)構(gòu)和條件判斷
4.2—4.3 使用if語句實(shí)現(xiàn)選擇結(jié)構(gòu)
4.4 邏輯運(yùn)算符及表達(dá)式邏輯運(yùn)算符和邏輯表達(dá)式
4.4.1 邏輯運(yùn)算符及優(yōu)先級(jí)邏輯運(yùn)算符及其優(yōu)先次序
4.4.1A 合理的出錯(cuò)處理——讓你的程序更受歡迎
4.4.2 邏輯表達(dá)式及其使用注意邏輯表達(dá)式
4.4.3 邏輯型變量——時(shí)控?zé)衾舆壿嬓妥兞俊 ?br />4.5 條件運(yùn)算符及表達(dá)式條件運(yùn)算符和條件表達(dá)式
4.6 條件結(jié)構(gòu)的嵌套——拜金女擇偶例子選擇結(jié)構(gòu)的嵌套
4.7 使用switch語句實(shí)現(xiàn)多分支選擇結(jié)構(gòu)——看天穿衣例子用switch語句實(shí)現(xiàn)多分支選擇結(jié)構(gòu)
4.8 綜合運(yùn)用——猜數(shù)字游戲選擇結(jié)構(gòu)程序綜合舉例
第5章 循環(huán)結(jié)構(gòu)的程序設(shè)計(jì)循環(huán)結(jié)構(gòu)程序設(shè)計(jì)
5.1 為什么需要循環(huán)控制——簡(jiǎn)單,沒啥可說的為什么需要循環(huán)控制
5.1A 循環(huán)結(jié)構(gòu)的四個(gè)要素
5.2 如果條件滿足,就一直做某事的while 用while語句實(shí)現(xiàn)循環(huán)
5.3 一直做某事,直到條件不滿足的do…while 用do…while語句實(shí)現(xiàn)循環(huán)
5.4 最完備最復(fù)雜的循環(huán)語句for 用for語句實(shí)現(xiàn)循環(huán)
5.5 更復(fù)雜的數(shù)據(jù)處理——嵌套的循環(huán)循環(huán)的嵌套
5.6 如何選擇合適的循環(huán)結(jié)構(gòu)幾種循環(huán)的比較
5.7 改變循環(huán)的狀態(tài)改變循環(huán)執(zhí)行的狀態(tài)
5.7.1—5.7.2 用break和continue語句提前終止循環(huán)
5.7.3 break和continue的不同 break語句和continue語句的區(qū)別
5.8 綜合運(yùn)用——檢測(cè)磁盤剩余容量與統(tǒng)計(jì)字符串中的單詞數(shù)循環(huán)程序舉例
第6章 處理批量數(shù)據(jù)的利器——數(shù)組利用數(shù)組處理批量數(shù)據(jù)
6.1 如何定義和引用一維數(shù)組怎樣定義和引用一維數(shù)組
6.1.1 如何定義一維數(shù)組——保存學(xué)生成績(jī)的例子怎樣定義一維數(shù)組
6.1.2 如何引用一維數(shù)組怎樣引用一維數(shù)組元素
6.1.3 使用memset()函數(shù)進(jìn)行一維數(shù)組的初始化一維數(shù)組的初始化
6.1.4 用qsort()函數(shù)對(duì)數(shù)組進(jìn)行排序一維數(shù)組程序舉例
6.2 如何定義和引用二維數(shù)組怎樣定義和引用二維數(shù)組
6.2.1 如何定義二維數(shù)組及二維數(shù)組的內(nèi)存排列方式怎樣定義二維數(shù)組
6.2.2 如何引用二維數(shù)組怎樣引用二維數(shù)組的元素
6.2.3 使用memset()函數(shù)進(jìn)行二維數(shù)組的初始化二維數(shù)組的初始化
6.2.4 對(duì)二維數(shù)組中的數(shù)據(jù)進(jìn)行排序二維數(shù)組程序舉例
6.2.4.A 分析問題,定義二維數(shù)組描述批量數(shù)據(jù)
6.2.4.B 向二維數(shù)組輸入數(shù)據(jù)
6.2.4.C 用qsort()函數(shù)對(duì)二維數(shù)組進(jìn)行排序
6.2.4.D 輸出二維數(shù)組結(jié)果
6.2.A 擴(kuò)展:多維數(shù)組的使用
6.3 字符數(shù)組的本質(zhì) 字符數(shù)組
6.3.1—6.3.3 如何定義字符數(shù)組
6.3.4 字符串和字符數(shù)組的區(qū)別字符串和字符串結(jié)束標(biāo)志
6.3.5 字符數(shù)組和字符串的輸入輸出字符數(shù)組的輸入輸出
6.3.6 使用字符串處理函數(shù)完成字符串處理任務(wù)使用字符串處理函數(shù)
6.3.6.A 用gets()和puts()輸入輸出字符串
6.3.6.B 用strcat()連接兩個(gè)字符串
6.3.6.C 用strchr()和strstr()查找字符串
6.3.6.D 用strcmp()比較字符串
6.3.7 綜合運(yùn)用——自己寫一個(gè)strsub()函數(shù)截取字符串字符數(shù)組應(yīng)用舉例
6.A 如何運(yùn)用數(shù)組處理批量數(shù)據(jù)——一個(gè)計(jì)算平均血糖的例子
6.A.A 什么時(shí)候應(yīng)該使用數(shù)組
6.A.B 如何將數(shù)據(jù)輸入到數(shù)組
6.A.C 如何處理數(shù)組中的數(shù)據(jù)
6.A.D 數(shù)組使用的三部曲:定義數(shù)組、輸入數(shù)據(jù)、處理數(shù)據(jù)
第7章 模塊化程序設(shè)計(jì)的根基——函數(shù)用函數(shù)實(shí)現(xiàn)模塊化程序設(shè)計(jì)
7.1 為什么要用函數(shù)——便于代碼的管理和復(fù)用為什么要用函數(shù)
7.2 如何聲明函數(shù) 怎樣定義函數(shù)
7.2.1 為什么要聲明函數(shù)為什么要定義函數(shù)
7.2.2 聲明函數(shù)的方法定義函數(shù)的方法
7.2.2A 聲明函數(shù)的三要素:返回值、函數(shù)名、參數(shù)列表
7.3 如何調(diào)用函數(shù) 調(diào)用函數(shù)
7.3.1 調(diào)用的形式及調(diào)用語句函數(shù)調(diào)用的形式
7.3.2 函數(shù)調(diào)用時(shí)的數(shù)據(jù)傳遞——兩個(gè)方向的傳遞函數(shù)調(diào)用時(shí)的數(shù)據(jù)傳遞
7.3.2A 如何向函數(shù)傳遞體積很大的數(shù)據(jù)
7.3.3 調(diào)用的過程——簡(jiǎn)單,沒啥可說的函數(shù)調(diào)用的過程
7.3.4 關(guān)于函數(shù)的返回值函數(shù)的返回值
7.3.4A 如何從函數(shù)返回多個(gè)結(jié)果數(shù)據(jù)
7.4 編譯器對(duì)函數(shù)聲明的要求對(duì)被調(diào)用函數(shù)的聲明和函數(shù)原型
7.4A 創(chuàng)建一個(gè)我們自己的頭文件
7.A 站在巨人的肩膀上——如何使用已有的函數(shù)庫
7.B 我也能成為巨人——如何創(chuàng)建一個(gè)函數(shù)庫
7.5 嵌套的函數(shù)調(diào)用函數(shù)的嵌套調(diào)用
7.6 函數(shù)的遞歸調(diào)用——統(tǒng)計(jì)字符串出現(xiàn)的次數(shù)函數(shù)的遞歸調(diào)用
7.C 讓函數(shù)飛——在C語言中嵌入?yún)R編代碼
7.7 將數(shù)組作為函數(shù)參數(shù)傳遞數(shù)組作為函數(shù)參數(shù)
7.8 變量的生存期局部變量和全局變量
7.8.1 局部變量的定義及作用域局部變量
7.8.1A 不要從函數(shù)返回指向局部變量的指針
7.8.2 全局變量及跨文件的全局變量全局變量
7.9 變量的存儲(chǔ)方式及其區(qū)別變量的存儲(chǔ)方式和生存期
7.10 變量的聲明和定義的區(qū)別——是否建立存儲(chǔ)空間關(guān)于變量的聲明和定義
7.11 控制函數(shù)的訪問范圍內(nèi)部函數(shù)和外部函數(shù)
7.D 函數(shù)使用的四項(xiàng)基本原則
第8章 指針?沒啥好怕的!善于利用指針
8.1 什么是指針 指針是什么
8.2 什么是指針變量 指針變量
8.2.1 使用指針變量的例子——指針的四大用途使用指針變量的例子
8.2.1A 什么是NULL指針
8.2.2 如何定義指針變量怎樣定義指針變量
8.2.2A 內(nèi)存的動(dòng)態(tài)申請(qǐng)與釋放
8.2.3 如何引用指針變量怎樣引用指針變量
8.2.3A 指針變量存放在哪里呢?
8.2.4 使用指針變量作為函數(shù)參數(shù)的場(chǎng)合指針變量作為函數(shù)參數(shù)
8.3 更靈活的數(shù)組訪問方式——使用指針訪問數(shù)組通過指針引用數(shù)組
8.3.1—8.3.3A 使用指針訪問數(shù)組的要點(diǎn)
8.3.4 如何向函數(shù)傳遞一個(gè)數(shù)組用數(shù)組名作函數(shù)參數(shù)
8.3.5 通過指針引用多維數(shù)組的要點(diǎn)——統(tǒng)計(jì)學(xué)生成績(jī)的例子通過指針引用多維數(shù)組
8.4 利用指針引用字符串通過指針引用字符串
8.5 定義指向函數(shù)的指針指向函數(shù)的指針
8.5.1 了解函數(shù)指針什么是函數(shù)指針
8.5.1A 函數(shù)指針背后的故事——剖析它的匯編代碼
8.5.2 利用函數(shù)指針變量調(diào)用函數(shù)用函數(shù)指針變量調(diào)用函數(shù)
8.5.3 函數(shù)指針變量的定義和使用怎樣定義和使用指向函數(shù)的指針變量
8.5.4 用函數(shù)指針作函數(shù)參數(shù)——在函數(shù)之間傳遞函數(shù),即傳遞操作
用指向函數(shù)的指針作函數(shù)參數(shù)
8.6 使用指針作為函數(shù)的返回值返回指針值的函數(shù)
8.7 指針數(shù)組及指向指針的指針指針數(shù)組和多重指針
8.7.1 什么是指針數(shù)組——一個(gè)電磁爐火力控制程序什么是指針數(shù)組
8.7.2 指向指針的指針指向指針數(shù)據(jù)的指針
8.7.3 向main()函數(shù)傳遞數(shù)據(jù)指針數(shù)組作main函數(shù)的形參
8.8 動(dòng)態(tài)內(nèi)存分配及動(dòng)態(tài)調(diào)整動(dòng)態(tài)內(nèi)存分配與指向它的指針變量
8.9 指針的“醒世恒言” 有關(guān)指針的小結(jié)
8.A 如何避免錯(cuò)誤地使用指針
第9章 建立自己的數(shù)據(jù)類型用戶自己建立數(shù)據(jù)類型
9.1 結(jié)構(gòu)體變量登場(chǎng)定義和使用結(jié)構(gòu)體變量
9.1.1—9.1.3 關(guān)于這三小節(jié)的特別說明
9.1.A 定義結(jié)構(gòu)體應(yīng)該注意的問題
9.1.B 使用結(jié)構(gòu)體以及它的數(shù)據(jù)成員
9.2 使用結(jié)構(gòu)體數(shù)組——利用qsort()函數(shù)對(duì)數(shù)組排序使用結(jié)構(gòu)體數(shù)組
9.2.1—9.2.2 關(guān)于這兩小節(jié)的特別說明
9.3 利用結(jié)構(gòu)體指針減少傳遞的數(shù)據(jù)量結(jié)構(gòu)體指針
9.3.1—9.3.3 關(guān)于這三小節(jié)的特別說明
9.4 筆試必考,面試必問的數(shù)據(jù)結(jié)構(gòu)——鏈表用指針處理鏈表
9.4.1 鏈表是神馬 什么是鏈表
9.4.2 如何建立靜態(tài)鏈表建立簡(jiǎn)單的靜態(tài)鏈表
9.4.3 如何建立動(dòng)態(tài)鏈表建立動(dòng)態(tài)鏈表
9.4.4 如何輸出鏈表 輸出鏈表
9.4.A 鏈表數(shù)據(jù)的處理:對(duì)鏈表進(jìn)行排序和查找
9.4.B 鏈表數(shù)據(jù)的處理:查找結(jié)點(diǎn)
9.4.C 釋放一個(gè)鏈表
9.5 共用體類型的定義和使用共用體類型
9.5.1—9.5.3 關(guān)于這三小節(jié)的特別說明
9.6 什么是枚舉類型使用枚舉類型
9.7 數(shù)據(jù)類型也可以有個(gè)更好記更好用的綽號(hào)——用typedef聲明新的數(shù)據(jù)類型用typedef聲明新類型名
第10章 文件的輸入與輸出對(duì)文件的輸入輸出
10.1 在C中文件的概念是怎樣的 C文件的有關(guān)基本知識(shí)
10.1.1—10.1.5 關(guān)于這五小節(jié)的特別說明
10.1A C語言所處理的文件類型
10.2 如何打開與關(guān)閉文件打開與關(guān)閉文件
10.2.1 使用fopen函數(shù)打開數(shù)據(jù)文件及注意事項(xiàng)用fopen函數(shù)打開數(shù)據(jù)文件
10.2.1A 用freopen()重定向標(biāo)準(zhǔn)輸入輸出流
10.2.2 使用fclose函數(shù)關(guān)閉數(shù)據(jù)文件及注意事項(xiàng)用fclose函數(shù)關(guān)閉數(shù)據(jù)文件
10.3 對(duì)數(shù)據(jù)文件進(jìn)行順序讀寫順序讀寫數(shù)據(jù)文件
10.3.1—10.3.2 怎樣向文件讀寫字符和字符串
10.3.3 使用函數(shù)來進(jìn)行數(shù)據(jù)文件的格式化讀寫用格式化的方式讀寫文件
10.3.4 二進(jìn)制方式的文件讀寫——讀寫一張圖片用二進(jìn)制方式向文件讀寫一組數(shù)據(jù)
10.3.A 文件讀寫的“三大紀(jì)律”
10.4 在任意位置讀寫數(shù)據(jù)文件隨機(jī)讀寫數(shù)據(jù)文件
10.4.1—10.4.2 關(guān)于這兩小節(jié)的特別說明
10.5—10.5A 擴(kuò)展:訪問文件的各種屬性
10.5A.A 如何判斷文件是否存在
10.5A.B 如何獲得文件的日期和大小
第A章 程序是如何煉成的
A.A 問題的提出——統(tǒng)計(jì)網(wǎng)頁中的詞頻
A.B 自頂向下:分析問題,劃分模塊
A.B.A 分析數(shù)據(jù)輸入模塊
A.B.B 分析數(shù)據(jù)處理模塊
A.B.C 分析數(shù)據(jù)輸出模塊
A.C 逐步求精:用函數(shù)實(shí)現(xiàn)各個(gè)模塊
A.C.A 實(shí)現(xiàn)數(shù)據(jù)輸入模塊
A.C.B 實(shí)現(xiàn)數(shù)據(jù)處理模塊
A.C.C 組裝實(shí)現(xiàn)數(shù)據(jù)預(yù)處理模塊
A.C.D 實(shí)現(xiàn)計(jì)算詞頻模塊
A.C.E 實(shí)現(xiàn)文件排序模塊
A.C.F 實(shí)現(xiàn)數(shù)據(jù)輸出模塊
A.C.G 打掃戰(zhàn)場(chǎng):釋放動(dòng)態(tài)申請(qǐng)的內(nèi)存
A.D 百煉成鋼:如何調(diào)試我們的程序
A.E 程序就是這樣煉成的
第B章 接下來我該……
B.A 接下來要讀的書
B.A.A 提升對(duì)C語言的理解和掌握
B.A.B 做一個(gè)有思想的程序員
編輯推薦
它幾乎是每一位程序員的啟蒙讀物!它的銷量超過1100萬冊(cè)!它就是眾所周知的《C程序設(shè)計(jì)》——譚浩強(qiáng)老師的經(jīng)典著作!然而,它也有一些不足之處,這使得20年來,關(guān)于它的爭(zhēng)議沒有停止過,20年來,它,一直是孤獨(dú)的。直到,《伴侶》的出現(xiàn)!《伴侶》讓“它”變得更完整,我們的目的是讓《C程序設(shè)計(jì)》讀者的困惑和遺憾在這本《伴侶》中得到解決。學(xué)習(xí)《C程序設(shè)計(jì)》,必配《C程序設(shè)計(jì)伴侶》!咖啡,加牛奶,味道更香醇……
圖書封面
圖書標(biāo)簽Tags
無
評(píng)論、評(píng)分、閱讀與下載