C語言入門經典書目推薦--轉

來源:互聯網
上載者:User

標籤:封裝   內容   yourself   目的   c語言程式   全面   記憶體地區   答案   中國   

國內良莠不齊的C語言教程數不勝數,同名如“C程式設計”“C語言程式設計”“C語言程式設計教程”的都多如牛毛,這些不知名的就不予考慮了,要看就看經典。筆者嘔心瀝血翻閱十幾本C語言入門書,去其糟粕取其精華,推薦以下這些C語言入門經典書籍,希望你能少走彎路,走入C語言的神奇世界。

如果你是零基礎 《明解C語言》(337頁)推薦指數:★★★★★

乍一看還以為是本新書,但原版在1999年就發行了,引進得實在太晚。屬於比較嚴肅的教材,忠誠於專業術語,並未考慮更通俗的表達方式,並涉及一些演算法, 適合正兒八經地學C;內容組織很成功(把排序放在結構體部分的做法很神奇),循序漸進,知識點比較淺,並不全面,相對偏僻及細枝末節的內容沒有講述(也不 必要拿來讓初學者頭大),沒有冗餘,應該靜下心來一字一句地看,一丁點也不容錯過。PS:把C曆史背景放在附錄不失為聰明的做法,畢竟比起發展史什麼的,讀者可能更關心如何立馬寫個hello world。

《21天學通C語言》(614頁)推薦指數:★★★★★

槽點一:這書名也忒俗了吧,這類書一般不都是水貨嗎?

解釋:確實擁有這類書名總是要為人所詬病,但你千萬不該因此而錯過此書。這是本來自國外的教程,原名還就是“Sams Teach Yourself C in 21 Days”,然其品質是國內那些名字類似的書所難以相比的。

槽點二:614頁,也忒厚了吧!完全是學霸級初學者專用啊。

解釋:C語言的21天課程其實只佔了前431頁,後面是C++、Java、C#等附加課程。

本書把C的每一部分都講解得特別細緻,附有例子、經驗、注意點、建議等,還詳細地介紹了各種你腦中可能會產生的疑問或在實踐中可能會遇到的問題。有些教材或多或少顯性或隱性地要求讀者能夠舉一反三,而此書不僅介紹了“一”,把“三”也逐一講解了(比如各知識點的組合運用)。沒有死循知識結構安排內容,而是按照讀者慢慢適應的學習過程循序漸進。為確保讀者理解清楚,提前使用時簡要介紹過的知識點會在後續章節重新詳解。

然 而跑上來給的例子並不簡單,一股腦兒介紹不少東西,零基礎者看著可能會有點頭大。還存在一些不嚴謹的地方,雖談不上誤導,但可能會引起困惑。除去這些瑕 疵,我終究是被它驚豔到了,力薦之。PS:我看的這2012年8月第一次印刷的版本有不少印刷錯誤,希望後續印版會有校正。

《C Primer Plus》(626頁)推薦指數:★★★★★

怎麼說呢,看得出這樣的作者才是真正懂C、愛C的人,對各個版本的C標準了如指掌。好比寫文章,沒有才華的人生搬硬套才把事情講清楚,而渾身才氣的 人稍微抖一抖,文字就散落成一篇佳作。第一章概覽就把我赤裸裸地驚豔到了,同樣介紹C的曆史及背景,卻不是其他書那樣死板的陳列,語言精鍊意賅,不需講的 果斷不講,需要講的一語中的,沒有廢話,一氣呵成。恨自己當初學C看的不是這本。

跑上來一股腦介紹的東西很多,很細,初學者可能見了頭大,但你若能耐下性子細細看懂,必會感歎它講得真棒。行文極其精緻、嚴謹,即使初學者可能體會不到這一點;內容詳盡、細緻,無愧於書的厚度,常用的不常用的,基礎應用進階應用程式,大庭廣眾下的犄角旮旯裡的應有盡有;全方位多層次實用技巧、注意事項,樣本經典,醍醐灌頂,兼具入門書與工具書的氣質。

總體上雲巔工作室譯得還算不錯,但你依然會遇到一些拗口的句子,然而畢竟瑕不掩瑜,書的總體品質擺在那裡,看引進第六版時能不能譯得更好些。

《啊哈C!思考快你一步》(191頁)推薦指數:★★★★☆

這是唯一一本實體書和電子版我都沒能接觸到的,或許是不夠熱門,網上找不到完整的pdf,連出版前的草稿版《啊哈C語言》也僅公開了一半。若是有朋 友能搞到完整的電子版,懇請予我共用一份。我這裡看的便是只有一半內容的先行版(以及正式版的幾十頁試讀樣章),還帶著新鮮的錯別字和病句,但版面接近正 式版,讀起來也是比較舒適的。

不知道啊哈磊(作者)這哥們是何方神聖,也僅是個有想法的普通人吧,書上是這麼介紹的:“曾在中科院玩過單片 機。武漢大學曆史上第一位以本科生身份加入MSRA的小夥伴,在機器學習組從事搜尋引擎方面的研究。發表國際會議論文一篇(IEEE)。全國青少年資訊學 奧林匹克金牌教練。”我很喜歡這樣年輕一代人寫的書,用語隨意,帶著顏表情,博文style,沒有套話,沒有代溝,看著很親近。本書號稱是“小學生坐在馬 桶上都可以讀懂的‘C語言編程’入門書”,你可能不信,大學生都喊著學C枯燥,小學生那點基礎和智商就甭提了,可本書還真夠小學生看懂,我甚至覺得有些地 方還能寫得更萌、更形象些。不過小學生能接受的程度畢竟是有限的,本書定位是如此的低,以至於只介紹了C最淺的那部分知識,更多篇幅用來舉例、增加讀者的編程興趣,簡直太適合零基礎入門了!而啊哈磊自己基於gcc做的啊哈C編譯器也非常適合初學者練習編程,就像他自己說的,是簡潔得不能再簡潔的C語言編程軟體,沒有工程的概念、沒有編譯連結的步驟、沒有環境配置,各種沒有,你一開啟連代碼架構都已經寫好了,是專為初學者製作的良心產品。

《C程式設計》(第三版378頁、第四版390頁)推薦指數:★★☆☆☆

把“發行逾1100萬冊”的訊息印在封面大中央的做法實在太中二了,你就是本指定教材又不是暢銷書,全國高校都用你不破千萬才怪呢!並且,千萬的銷 量同時也意味著接受千萬讀者的檢驗,稍欠嚴謹即易被噴。網上有個500多頁的word文檔(百度“《C程式設計》錯誤”即可找到),簡直太蛋疼了,他寫得 完別人也看不完啊!本書確實不夠嚴謹+印刷問題層出+許多地方還存在嚴重錯誤,但這份文檔有點吹毛求疵,其中不少說法令人難以苟同,500多頁的規模水分 太大。

這本教材,初學者拿來學編程確實較易理解,但對C語言的把握會有一定偏差,慎讀。而我們不妨暫且忽略其中的一些重大問 題,重新審視之。作為國內教材中的典範,此書雖然在內容組織上依然中規中矩,但知識點講解十分通俗,由於通俗,稍顯(我是說稍顯)囉嗦。做教材可以,不適 合自學,因為你不能確定哪些是次要的。畢竟作為一本國家級教材,該涵括的都得涵括,不僅要領人進門,還得保證讀者達到能考試的程度;擺脫不了應試教育的特 點,為了鞏固知識點,時不時會冒出(i++)+(i++)+(i++)和a+=a-=a*=a這樣神奇的式子。如果你喜歡這種style,千萬不要錯過此 書,沒錯,我當年就有點喜歡這種style,乃覺這書不錯的原因之一——竟然讓我搞懂了這麼複雜混亂的玩意(後來才發現實際編程中根本沒人這麼做)!

如已學過一點點 《C程式設計語言》(258頁)推薦指數:★★★★★

暱稱K&R(兩位作者姓氏首字母),C語言之父的作品,就好比向別人介紹自己的孩子,不能再精闢,不能再權威,被奉為C語言聖經。在C還沒有統一標準的年代,78年K&R的第一版直接被廣泛接受為C標準,其他號稱是聖經的C語言書用詞未免也太想當然了……

聖 經就好比一件標準模板,國內外數不清的C教程都是參照K&R寫的,一如大堆的瀏覽器都使用了IE核心一樣。B5的開本短短258頁,除去供查閱的 附錄僅166頁,再除去第8章“Unix系統介面”僅剩148頁,這麼少的篇幅將C語言講得清清楚楚,簡直是場華麗的藝術!

此書寫得非常嚴 謹,必要之處還提及老版C的情況,可以說學C必看,但並不適合零基礎入門,正如其第1版序中所言:“本書並不是一本有關程式設計的入門性手冊,它要求讀者 熟悉基本的程式設計概念,如變數、指派陳述式、迴圈和函數等。”從頭至尾使用的均是書面化的術語,並涉及到逆波蘭、二叉樹、Unix等專業知識,還時常將C 與Fortran、Pascal語言進行比較,你若不瞭解這些看著一定頭痛,因此K&R並不是入門的最佳選擇。

《C語言入門經典》(第4版571頁、第5版584頁)推薦指數:★★★☆☆

一看這霸氣的書名就知道它是部經典,當然這是譯名,(第4版)原名為“Beginning C: From Novice to Professional”,表達多中肯,沒錯,form的是novice,首先你得是個novice,前言中果斷暗示你最好此前接觸過編程這玩意兒。內容是一整塊一整塊講的,力爭全面、深入,沒有輕重緩急,講完講透為止,必要時毫不客氣地使用後面才細講的技術,導致一下子有過量知識點展現在讀者面前。多數章尾有個程式設計的例子,而這些例子對於初學者來說也明顯過於複雜。

最 要命的是,(第4版)我已經看得相當粗略,但依然發現了幾處嚴重的錯誤,不是筆誤也不是印刷問題,為排除翻譯出錯的可能,特意比照了英文原版,(同時也排 除了C標準版本的因素)確實有錯(下面例舉兩處,尚未學C的朋友請直接跳過)。此外,不少地方講得不夠清楚,我本懷著崇敬之情拜讀,結果最終對其印象並不太好。

錯誤1(第5版修複)

P267關於realloc()函數:顯然,第二個參數的值不應超過以前分配的位元組數。否則,新分配的記憶體將與以前分配的記憶體地區大小相同。

原版P270:Obviously the value of the second argument should not exceed the number of bytes that was previously allocated. If it is, you will only get a memory area allocated that is equal to the size of the previous memory area.

錯誤2(第5版未修複)

P462關於流:流是外部資料源或資料目的地的抽象表示,所以鍵盤、顯示器上的命令列和檔案都是流。……將資料寫入流(即磁碟檔案)有兩種方式。

原版P468:A stream is an abstract representation of any external source or destination for data, so the keyboard, the command line on your display, and files on disk are all examples of streams....There are two ways of writing data to a stream that is a disk file.

第5版的改動非常小,將第4版九成內容照搬,就最後增加了一章“Advanced and Speciallized Topics”(進階專用主題),介紹Unicode、線程等,講得也不易理解甚至不知所云。倒是在排版上有所進步,更適於閱讀,如果你硬要來上一本,第 5版會更好一些。

《嗨翻C語言》(588頁)推薦指數:★★★★☆

莫被這厚度嚇怕,它的字很大,空白很大,圖片很多……如果把一般的專業書比作word文檔,那麼《嗨翻C語言》就是ppt,各種字型,各種插圖(即使多數只意增加趣味而與正式內容關聯不大),你會覺得眼前一亮,比如:

右 下那壯漢居然在想(說?):“可我喜歡這一張,上面有小貓咪呢!”諸如此類數不勝數,隨便翻開一頁都能碰到這樣個無厘頭的吐槽或瘋話,惡搞無極限;知識點 與劇情飽滿的故事結合在一起,想忘都難;譯者也幽默風趣,做了不少本土化的工作,比如“三位鑽石王老五準備參加今天的‘非誠勿擾’”……總體感覺甚至像一 本幼兒園的啟蒙畫冊。(Head First系列都這個無腦樣我會亂說?)

在開講知識點前先引導讀者自己思考,猜猜這些東西是幹啥的,甚至 時常讓你站在編譯器或者語言設計者的角度思考問題,這些做法很獨特,讓你從一開始就從很本質的層面去接觸C;同時督促讀者動腦,練習題有趣而簡短,提示、 答案及講解也非常到位。然而書裡充斥著鮮明的老美風格,很high很激情,可以想象美國學生讀了本書極可能做出很實際很創意的東西,而中國的學生讀著可能 感覺反而有點混亂。並且它起點不低,相當不低,明確地說,適合學過其他語言(如Python)的人用來學C,後半部分的進階應用程式更是涉及作業系統和網路的知識,儘管它也做了簡單介紹,但我相信沒接觸過的朋友一下子還是難以接受的。

《C語言點滴》(302頁)推薦指數:★★★★★

看得出作者確實是個有熱情有想法的好老師,語言輕鬆幽默有內涵,跑上來1.1節裝備篇大話程式員屌絲著裝就能閃瞎你眼。真正意義上的由淺入深,一開 始淺得連水都沒有,然後不知不覺就潛到了馬里亞納海溝。內容並不系統,比起其他的C語言書,它不是教材而是教輔,更多的是總結性的東西(提示注意事項 什麼的)——作者總結了自己教學過程中常見的問題與經驗,參考了一些經典之作,對其中內容進行了二次封裝之後以更易理解的方式呈現給讀者——而與其說是查漏補缺的教輔,其實又更像是心得寫得不錯的系列博文,無論你對C掌握程度如何,讀一下多少會有所收穫

那 麼之於初學者,相比零基礎或學過其他語言,你最好是學過一點C,哪怕只有一丁點。有不少術語是在不解釋的情況下出現的,你手頭最好還有一本主力教材。本書 專打輔助,但把重痛點剖析得十分清楚,對初學者快速、準確地掌握知識點很有協助。如果你有地方看不明白,不必焦慮,它本來就是“點滴”,暫時漏掉幾滴無傷 大雅,日後再補不遲。

PS:全書沒啥可吐槽的,唯獨1.2節安排不佳:從搜尋引擎、e-mail、聊天工具、社交網站、論壇、部落格、下載說 起,哦不,是教起,準確地說是零基礎教起,雖然說得挺有意思,但其實沒有必要,現在只要有點文化水平的,即使是小學生甚至幼兒園的小朋友也都會上網,而沒 有文化水平的,不識字的,也根本不會用電腦,更不可能來看C語言,換個角度,學C的讀者還不會上網嗎,這些東西是寫給誰看呢?

C語言入門經典書目推薦--轉

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.