㈠ 求c語言初學者書籍推薦
1.基礎(C語言入門,初學,編程基礎)
《C語言程序設計:現代方法》(第2版)
《深入理解計算機系統》(修訂版或第2版)
《C語言程序設計》(第2版)
《程序員修煉之道》
《C和指針》
《C primer plus》(入門首選)
《高質量程序設計指南》(一定要看)
《從問題到程序》(最佳高校教材)
2.內核/驅動
《Linux內核設計與實現》(第3版)
《Linux設備驅動程序》(第3版)
《深入Linux內核架構》
《Linux C編程一站式學習》
3.應用
《UNIX環境高級編程》
《UNIX網路編程》
4.進階
《C陷阱與缺陷》
《C專家編程》
《C語言程序設計》K&R版
《C語言解惑》
《你必須知道的495個C語言問題》
《C語言參考手冊(原書第5版)》
《C語言介面與實現》
《C語言的科學和藝術》
《數據結構與演算法分析C語言系列》
《Linux程序設計》
《現代編譯原理》
《重構-改善既有代碼的設計》
《老碼識途-從機器碼到框架的系統觀逆向修煉之路》
《C語言進階》
《實用C語言編程》
C語言從入門到進階書籍推薦吐血整理大全(含網盤下載鏈接)
㈡ c語言入門買什麼書好
1、基礎(C語言入門,初學,編程基礎)
《C語言程序設計:現代方法》(第2版)(C
Programming: A Modern Approach, 2nd Edition, K.N.King)
《深入理解計算機系統》(修訂版或第2版)(Computer Systems: A Programmer's Perspective,
Randal E. Bryant et al),閱讀建議
《C語言程序設計》(第2版)(The
C Programming Language, Brian W. Kernighan & Dennis M.
Ritchie)
《程序員修煉之道》(The
Pragmatic Programmer: From Journeyman to master, Andy
Hunt & Dave Thomas)
2、內核/驅動
《Linux內核設計與實現》(第3版)(Linux
Kernel Development, 3rd Edition, Robert Love)
《Linux設備驅動程序》(第3版)(Linux
Device Driver, 3rd Edition, Jonathan Corbet et al)
《深入Linux內核架構》(Professional
Linux Kernel Architecture, Wolfgang Mauerer)
3、應用
《UNIX網路編程》(Unix
Network Programming, W. Richard Stevens)
《UNIX環境高級編程》(Advanced
Programming in the UNIX Environment, W. Richard Stevens)
4、進階
《C陷阱與缺陷》(C Traps and Pitfalls, Andrew Koenig)
《C專家編程》(Expert C Programming, Peter
van der Linden)
《ARM嵌入式系統開發:軟體設計與優化》(ARM
System Developer's Guide: Designing and Optimizing System Software,
Andrew Sloss et al)
㈢ 學習C語言有什麼書適合新手看
學習C語言不是一朝一夕的事情,但也不需要花費十年時間才能精通。如何以最小的代價學習並精通C語言是本文的主題。請注意,即使是「最小的代價」,也絕不是什麼捷徑,而是以最短的時間取得最多的收獲,同時也意味著你需要經歷艱苦的過程。
一、要讀就讀好書,否則不如不讀
所有初學者面臨的第一個問題便是:如何選擇教材。好的開始是成功的一半,選擇一本優秀的教材是事半功倍的關鍵因素。不幸的是,學校通常會幫你指定一本很差勁的C語言課本;而幸運的是,你還可以再次選擇。
大名鼎鼎的譚浩強教授出了一本《C語言程序設計》,據說發行量有超過400萬,據我所知,很多學校都會推薦這本書作為C語言課本。雖然本人的名字(譚浩宇)跟教授僅僅一字之差,但我是無比堅定地黑他這本書的。這本書不是寫給計算機專業的學生的,而是給那些需要考計算機等級考試的其它專業學生看的。這本書的主要缺點是:例子程序非常不專業,不能教給你程序設計應該掌握的思考方式;程序風格相當地不好,會讓你養成亂寫代碼的惡習;錯誤太多,曾經有人指出過這本書的上百個錯誤,其中不乏關鍵的概念性錯誤。好了,這本書我也不想說太多了,有興趣大家可以網路一下:)
Kernighan和 Ritchie的《The C Programming Language》(中譯名《C程序設計語言》)堪稱經典中的經典,不過舊版的很多內容都已過時,和現在的標准C語言相去甚遠,大家一定要看最新的版本,否則不如不看。另外,即使是最經典最權威的書,也沒有辦法面面俱到,所以手邊常備一本《C語言參考手冊》是十分必要的。《C語言參考手冊》就是《C Reference Manual》,是C語言標準的詳細描述,包括絕大多數C標准庫函數的細節,算得上是最好的標准C語言的工具書。順便提一句,最新的《C程序設計語言》是根據C89標准修訂的,而《C語言參考手冊》描述的是C99標准,二者可能會有些出入,建議按照C99標准學習。還有一本《C和指針》,寫得也是相當地不錯,英文名是《Pointers on C》,特別地強調指針的重要性,算是本書的一個特點吧。不過這本書並不十分適合初學者,如果你曾經學過C語言,有那麼一些C語言的基礎但又不是很扎實,那麼你可以嘗試一下這本書。我相信,只要你理解了指針,C語言便不再神秘。
如果你已經啃完了一本C語言教材,想要更進一步,那麼有兩本書你一定要看。首先是《C Traps and Pitfalls》(中譯名《C陷井與缺陷》),很薄的一本小冊子,內容非常非常地有趣。要注意一點,這本書是二十多年前寫成的,裡面提到的很多C語言的缺陷都已被改進,不過能夠了解一些歷史也不是什麼壞事。然後你可以挑戰一下《Expert C Programming》(中譯名《C專家編程》),書如其名,這本書頗具難度,一旦你仔細讀完並能透徹理解,你便可以放心大膽地在簡歷上寫「精通C語言」了。
切記一個原則,不要讀自己目前還看不懂的書,那是浪費生命。如果你看不懂,那你一定是缺失了某些必需基礎知識。此時,你要仔細分析自己需要補充哪些內容,然後再去書店尋找講述的這些內容的書籍。把基礎知識補充完畢再回頭來學習,才會真正的事半功倍。
二、Unix/Linux還是Windows,這是個很大的問題
不同的編程環境會造就出不同思維的程序員。Windows的程序員大多依賴集成開發環境,比如Visual Studio,而Unix程序員更加鍾愛Makefile與控制台。顯而易見,集成開發環境更容易上手,在Windows上學習C語言,只需要會按幾個基本的Visutal C++工具欄按鈕就可以開始寫Hello, World!了,而在Unix下,你需要一些控制台操作的基本知識。有人也許認為Unix的環境更簡潔,但習慣的力量是很大的,大家都很熟悉 Windows的基本操作,而為了學習C語言去專門裝一個Unix系統,似乎有點不劃算。
對於一個只懂得Windows基本操作、連 DOS是什麼都不知道的新手而言,盡快做一些有趣而有意義的事情才是最重要的。用C語言寫一個小程序遠比學習ls、cat等命令有趣,況且我們要專注於C 語言本身,就不得不暫時忽略一些東西,比如編譯鏈接的過程、Makefile的寫法等等等等。
所以我建議初學者應該以Visual C++ 6.0(不是VisualC++ .NET)或者Dev C++作為主要的學習環境,而且千萬不要在IDE的使用技巧上過多糾纏,因為今後你一定要轉向Unix環境的。Visual C++ 6.0使用很方便,調試也很直觀,但其默認的編譯器對C標準的支持並不好,而Dev C++使用gcc編譯器,對C99的標准都支持良好。使用順帶提一下,很多大學的C語言課程還在使用Turbo C 2.0作為實驗環境,這是相當不可取的,原因其一是TC 2.0對C標准幾乎沒有支持,其二是TC 2.0編譯得到的程序是16位的,這對今後理解32位的程序會造成極大的困擾(當然,用djgpp之類的東西可以使TC 2.0編譯出32位程序,不過那過於復雜了)。
等你學完一本C語言的教材,你一定要轉向Unix平台繼續學習,幾乎所有的C語言高級教程都是基於Unix平台的(比如《C專家編程》)。轉變的過程是痛苦的,你需要面對的是各種紛繁復雜的命令,完全不同於Windows平台的思考方式,但是這種痛苦是值得的。Unix與C是共生的,Unix的思考方式和習慣更加符合C語言的思考方式和習慣。在Unix下,你可以找到無數優秀的源代碼供你盡情閱讀,你可以方便地查看某個庫函數的聯機手冊,還可以看到最優秀的代碼風格(說到代碼風格,我會專門寫一篇文章詳細敘述)。
歸結起來就是一句話:初學C語言,建議使用Windows系統和集成開發環境,在准備向「高手」方向努力時,請先轉向Unix平台。
三、萬事俱備,你就是東風
書已選定,環境配置完成,正所謂萬事俱備,只欠你自己的努力了。請從書的前言開始,仔細地閱讀手頭的教材,很多人看書喜歡直接從第一章開始看,這是錯誤的做法。前言是作者對整本書的大體介紹,作者一般會告訴你需要什麼基礎才能夠順利閱讀本書,這可以幫助你檢驗自己的基礎知識是否已經具備。看完前言,還要瀏覽一下目錄,了解一下書的整體結構,順便給自己安排一下學習計劃。
學習C語言,必需注意每一個細節,書上的例子代碼一定要自己親自敲一遍,編譯執行輸出都跟書上說的一致才能算是學完了一個例子,如果不一致,就要仔細找原因。出了書本上有的例子,自己還要「創造」一些例子,比如學習運算符優先順序的時候,可以寫幾個相同的表達式,在不同的位置加上括弧,看看有哪些不同的行為,比如*p++和(*p)++,又比如a = b == c、(a = b) == c和a = (b == c)等等。自己抄的書上的例子以及改造之後的例子,還有自己「創造」的例子,都應該仔細地歸類保存,並且要在源代碼中寫上簡短的注釋,闡述這個例子的意圖。
例子之後就是習題了,我建議初學者把所有的習題都獨立做一遍,然後對照答案的代碼,看看自己的代碼有那些不足,再試著修改自己的代碼。很多人不重視習題,這是極大的錯誤,因為作者通常會在習題中說明一些重要的道理,而不是單純地檢驗前面的知識。
也許你認為這樣學習太慢,其實不然。學得細致就不用走回頭路,等你學到後面才發現自己前面沒搞清楚,那才是真的得不償失。一般說來,整本書讀完,你應該完成數千行乃至上萬行的代碼,無論是原封不動照抄書上的,還是自己心血來潮寫就的,都是今後繼續學習的一筆財富。以我自己舉例,閱讀《Windows核心編程》時(我只閱讀了3/4的內容),除了抄書上的代碼,還自己寫了很多例子,一共有5574行(用unix下的wc工具統計),時隔多日,我早已記不清 Windows的系統編程了,但只要花幾分鍾翻出以前的代碼看看,便會重新瞭然於胸。所謂好記性不如爛筆頭,就是這個道理。
仔細讀書、認真抄寫源代碼、獨立完成習題外加更進一步的實驗,最後將所有的代碼留下,成為自己的經驗和財富,絕對的辛苦,也絕對的事半功倍。當然,這種方式只適合學習需要精通的技術,如果不是學習C語言,你還要具體情況具體分析。
寫到最後,還有非常非常重要的一點沒有提及──代碼風格,從最開始學習就必須強迫自己模仿最優秀的代碼風格。因為代碼風格太重要內容也太多,我會用專門的一篇文章來詳細討論,請大家關注《程序員之路──關於代碼風格》。
㈣ 初學者學C語言,應該看什麼書好
我以前也是自學的,感覺還是看紙質的書比較好,而且以一本書為主,也看看其他人的書,最重要的是自己必須的編幾個稍微復雜點的程序,這樣對c語言的理解才會更深一點,以前的不了解之處也會有茅塞頓開之感
㈤ C語言初級入門看什麼書
我就是初級的,老師說只要把譚浩強的看明白學明白就行,這本書好入門。現在是第四版的,書店買的是紅色的皮的。希望我的回答對你有幫助
㈥ c語言入門自學書籍都有哪些
c語言入門自學書籍都有:《C程序設計》、《C#圖解教程》、《C語言入門經典》。
1、《C程序設計》
如果你只是想要學習C語言來考個計算機等級證書,僅此而已,那麼《C程序設計》對於考級來說絕對是本好書。
3、《C語言入門經典》
《C語言入門經典》例子簡單生活化,而且每個例子分析很細。章節安排合理,章末的例子還特別注重思路的引導,而且分析起來特別有成就感。
㈦ C語言初學者(自學),應該用什麼書
推薦四本適合初學者的書籍
《C和指針》
《C primer Plus》
《C陷阱與缺陷》
《C程序設計》
㈧ C語言入門用什麼書
為什麼一定要讓人走彎路呢,譚浩強那本雖然簡單易懂,我們學校當初也用這本,但我真心不覺得好在哪裡,只跟你說怎麼用,但很多地方都沒解釋為什麼這樣用,為什麼不能那樣用。很多新手看完這本,被誤導而不自知,這里就不說了。至於風格嘛,感覺太老,不注重細節,而且還不與時俱進,又不像K&R寫的,是很久以前寫的,停止更新了。多次出新版,卻基本不修改錯誤和新時代風格算什麼意思。
那本跟TCLP完全不能比,我入門就看這本,不過對新人的確有難度。TCLP就是yuwenchenglo說的那本,中文名《C程序設計語言》。C語言之父寫的,對C的核心都講的不錯,就是太薄了點。當然這本里也有一些老風格,比如main(){} 現在被C99標准禁用了,注意下就可以了,畢竟這本書有年頭了,舊時代的風格不作評論。不過很多地方還是講的不錯的。你看完這本(或者看的差不多就可以了),再回去看那本,自己對比一下就知道了。
如果你只想學C的話(不包括C++),可以看看《C語言參考手冊》,作為工具書相當不錯,介紹了大部分的C語法、C和C++的區別,還有C的標准庫(不是C++的STL)。
你說的那本《C語言入門經典》,也不錯,風格上和現代風格相符,也比較嚴謹。其他的也可以看看《C Primer Plus》,這本比較厚,內容比較多一點,是非常不錯的C教材。
提高的話,可以看看《C陷阱和缺陷》、《C專家編程》等等,多了解下C的缺陷什麼的。
至於其他的,比如lshmusic說的,等你把基礎打好後再看吧,剛開始不要學的太急。如果想學windows,最好先看Charles Petzold的《windows程序設計(第五版)》,再來看《windows核心編程》。前者則針對廣泛的windows程序,後者主要針對windows系統,如多線程、線程池等等,最好有操作系統的知識。如果是Linux,可以看看W.Richard Stevens《Unix高級環境編程》。這幾本都是各環境下的編程聖經,非常經典。不過畢竟跟實際環境相關,最好能多了解點系統方面的知識,比如多線程、線程池等等知識,在實際編程環境中經常會遇到。
這里有篇譚和K&R的TCLP的文章,可以做個參考:
http://hi..com/perfectbo/item/e0a0b917f7a9555f2a3e2201
——————————————————
如果只想2選一的話,我覺得《入門經典》不錯,我家裡有一本,但前面那本我的確沒看過,所以我不做評述,都看過的人,可以說一下。
㈨ c語言入門書籍
1) 《C語言小白變怪獸》
既適合對計算機一竅不通的小白,也適合有編程基礎的讀者,還可以用來進階。
《C語言小白變怪獸》是一套網路教程,發布在C語言中文網,由站長親自編寫,這套教程最大的特點是通俗易懂,深入淺出,既適合小白入門,也適合後期進階。本人就是讀了這套教程以後才對C語言有了天翻地覆的認識,覺得以前學得都是垃圾。。。
這本書至今還在不斷更新,我認為這是C語言入門的首選教材,吐血推薦,經典中的經典!!!
2) 《啊哈C語言》
適合對計算機一竅不通的純小白,有編程基礎的讀者請忽略。
這本書語言幽默,生動形象,通俗易懂,給人耳目一新的感覺,但是這本書非常淺顯,並不深入,所以適合純小白入門,找到門以後也就扔了。
這本書著重於語言藝術,針對純小白下足了功夫,小學生坐在馬桶上都能學會編程。說實話,我非常欣賞作者的創意和用心,國內像這樣寫書的少之又少,入門的書就應該是這個樣子。
3) 《明解C語言》
適合對計算機一竅不通的純小白,有編程基礎的讀者請忽略。
日本人的作品,最大的特點是插圖很多,生動有趣,讓人一目瞭然。
其實真正的《明解C語言》一共有三部,分別是《明解C語言·入門篇》《明解C語言·中級篇》《明解C語言·實踐篇》,遺憾的是圖靈公司目前只翻譯了入門篇和中級篇,還沒有翻譯實踐篇。中級篇網上還沒有 PDF 下載資源
4) 《C Primer Plus》
適合有編程基礎的讀者,對計算機一竅不通的純小白請忽略。
暢銷 30 余年的C語言入門經典書籍,至今無人能撼動它的地位,它是最符合C語言標準的書籍,作為一名C語言程序員,不收藏一本都覺得自己很水。
但是對於沒有計算機基礎的小白,這本書就有點蛋疼了,信息量大,涉及的知識面廣,書也比較厚,得有耐心才行。
如果你是純小白,還是推薦閱讀《C語言小白變怪獸》《啊哈C語言》《明解C語言》這幾本書,等有了一點C語言基礎,知道C語言大概講了什麼東西了,再來讀《C Primer Plus》收獲就非大了,你會感受到滿滿的干貨。
5) 《C程序設計語言,The C Programming Language》
C語言創始人丹尼斯·里奇(Dennis MacAlistair Ritchie)的著作,和《C Primer Plus》並駕齊驅,很難分出伯仲,這兩本書都是一樣的優秀,都是C語言程序員必須收藏的。
但是,《C程序設計語言》也不太適合純小白,還是推薦閱讀《C語言小白變怪獸》《啊哈C語言》《明解C語言》這幾本書,等有基礎了再回來看。
《C程序設計語言》和《C Primer Plus》的難度差不多,信息量也差不多,有很多人糾結讀哪一本,我的建議是任選其一即可,或者,看了一本以後,另外一本大概瀏覽一下。
㈩ C語言入門學習應該買哪些書籍
如果想以後深入的話 不推薦國內的書(譚浩強的過分注重語法細節,而且講得不深入,代碼風格也不好) 如果只是學一下,以後沒想過要深入編程的話 可以看 譚的書(大學都用這書)
國外的經典 我推薦《c primer plus》 這本600頁左右 內容注重大體,不糾纏於語法細節(過於注重語法細節,是學語言的大忌,其實任何學問也是如此,先從模仿開始學習)
這本書能夠讓你充分了解,編程的真正過程,理解更深入(並不是語法細節的糾纏,而是原理的理解)。
看完這本 看《c programming language》 C之父的傑作 必看!(但不適合入門,有點難度)
這樣下來你已經對於c 語言能夠 基本應用了,但是還有一些問題(如指針的應用,和一些細節忽視)
該這本了《c缺陷和陷阱》 講述了很多 編程時遇到的問題,是你的編程技術更加精湛。
這個時候 《數據結構》 是必須看的啦 (演算法是程序的靈魂)
下面 就 可以做一些 簡單的項目了 什麼 貪吃蛇啦 五子棋啦 管理系統啦 都可以做
項目會大大提高你的 編程水平。
如果想做 應用軟體開發的 可以學習 C++ 或者 JAVA (比較適合上層的開發,帶界面那種)
用C做界面是很痛苦的,也是不切實際的,基本沒人這么做。
編程就該照這個順序學下來。(不過也可以 直接學習 C++ 或者 JAVA,他們並不以C為基礎,只是C比較適合入門,了解編程邏輯而已,如果不是寫系統軟體的,很少用C來工作的,基本都是JAVA或者C++ VB 這類較高級的語言)