

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、程序員之路──如何學習C語言學習C語言不是一朝一夕的事情,但也不需要花費十年時間才能精通。如何以最小的代價學習并精通C語言是本文的主題。請注意,即使是“最小的代價”,也絕不是什么捷徑,而是以最短的時間取得最多的收獲,同時也意味著你需要經(jīng)歷艱苦的過程。一、要讀就讀好書,否則不如不讀所有初學者面臨的第一個問題便是:如何選擇教材。好的開始是成功的一半,選擇一本優(yōu)秀的教材是事半功倍的關(guān)鍵因素。不幸的是,學校通常會幫你指定一本很差勁的C語言課本;
2、而幸運的是,你還可以再次選擇。大名鼎鼎的譚浩強教授出了一本《C語言程序設(shè)計》,據(jù)說發(fā)行量有超過400萬,據(jù)我所知,很多學校都會推薦這本書作為C語言課本。雖然本人的名字(譚浩宇)跟教授僅僅一字之差,但我是無比堅定地黑他這本書的。這本書不是寫給計算機專業(yè)的學生的,而是給那些需要考計算機等級考試的其它專業(yè)學生看的。這本書的主要缺點是:例子程序非常不專業(yè),不能教給你程序設(shè)計應該掌握的思考方式;程序風格相當?shù)夭缓?,會讓你養(yǎng)成亂寫代碼的惡習;錯誤太
3、多,曾經(jīng)有人指出過這本書的上百個錯誤,其中不乏關(guān)鍵的概念性錯誤。好了,這本書我也不想說太多了,有興趣大家可以百度一下:)Kernighan和Ritchie的《TheCProgrammingLanguage》(中譯名《C程序設(shè)計語言》)堪稱經(jīng)典中的經(jīng)典,不過舊版的很多內(nèi)容都已過時,和現(xiàn)在的標準C語言相去甚遠,大家一定要看最新的版本,否則不如不看。另外,即使是最經(jīng)典最權(quán)威的書,也沒有辦法面面俱到,所以手邊常備一本《C語言參考手冊》是十分必要
4、的。《C語言參考手冊》就是《CReferenceManual》,是C語言標準的詳細描述,包括絕大多數(shù)C標準庫函數(shù)的細節(jié),算得上是最好的標準C語言的工具書。順便提一句,最新的《C程序設(shè)計語言》是根據(jù)C89標準修訂的,而《C語言參考手冊》描述的是C99標準,二者可能會有些出入,建議按照C99標準學習。還有一本《C和指針》,寫得也是相當?shù)夭诲e,英文名是《PointersonC》,特別地強調(diào)指針的重要性,算是本書的一個特點吧。不過這本書并不十分
5、適合初學者,如果你曾經(jīng)學過C語言,有那么一些C語言的基礎(chǔ)但又不是很扎實,那么你可以嘗試一下這本書。我相信,只要你理解了指針,C語言便不再神秘。如果你已經(jīng)啃完了一本C語言教材,想要更進一步,那么有兩本書你一定要看。首先是《CTrapsPitfalls》(中譯名《C陷井與缺陷》),很薄的一本小冊子,內(nèi)容非常非常地有趣。要注意一點,這本書是二十多年前寫成的,里面提到的很多C語言的缺陷都已被改進,不過能夠了解一些歷史也不是什么壞事。然后你可以挑
6、戰(zhàn)一下《ExpertCProgramming》(中譯名《C專家編程》),書如其名,這本書頗具難度,一旦你仔細讀完并能透徹理解,你便可以放心大膽地在簡歷上寫“精通C語言”了。切記一個原則,不要讀自己目前還看不懂的書,那是浪費生命。如果你看不懂,那你一定是缺失了某些必需基礎(chǔ)知識。此時,你要仔細分析自己需要補充哪些內(nèi)容,然后再去書店尋找講述的這些內(nèi)容的書籍。把基礎(chǔ)知識補充完畢再回頭來學習,才會真正的事半功倍。個相同的表達式,在不同的位置加上括
7、號,看看有哪些不同的行為,比如p和(p),又比如a=b==c、(a=b)==c和a=(b==c)等等。自己抄的書上的例子以及改造之后的例子,還有自己“創(chuàng)造”的例子,都應該仔細地歸類保存,并且要在源代碼中寫上簡短的注釋,闡述這個例子的意圖。例子之后就是習題了,我建議初學者把所有的習題都獨立做一遍,然后對照答案的代碼,看看自己的代碼有那些不足,再試著修改自己的代碼。很多人不重視習題,這是極大的錯誤,因為作者通常會在習題中說明一些重要的道理,
8、而不是單純地檢驗前面的知識。也許你認為這樣學習太慢,其實不然。學得細致就不用走回頭路,等你學到后面才發(fā)現(xiàn)自己前面沒搞清楚,那才是真的得不償失。一般說來,整本書讀完,你應該完成數(shù)千行乃至上萬行的代碼,無論是原封不動照抄書上的,還是自己心血來潮寫就的,都是今后繼續(xù)學習的一筆財富。以我自己舉例,閱讀《Windows核心編程》時(我只閱讀了34的內(nèi)容),除了抄書上的代碼,還自己寫了很多例子,一共有5574行(用unix下的wc工具統(tǒng)計),時隔多
9、日,我早已記不清Windows的系統(tǒng)編程了,但只要花幾分鐘翻出以前的代碼看看,便會重新了然于胸。所謂好記性不如爛筆頭,就是這個道理。仔細讀書、認真抄寫源代碼、獨立完成習題外加更進一步的實驗,最后將所有的代碼留下,成為自己的經(jīng)驗和財富,絕對的辛苦,也絕對的事半功倍。當然,這種方式只適合學習需要精通的技術(shù),如果不是學習C語言,你還要具體情況具體分析。寫到最后,還有非常非常重要的一點沒有提及──代碼風格,從最開始學習就必須強迫自己模仿最優(yōu)秀的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論