1. 程式人生 > >介紹給新手的一種C語言學習方法

介紹給新手的一種C語言學習方法

對於C語言的學習,不同的人有不同的經歷和不同的方法,當中許多方法都具備相對完整的步驟和不錯的功效。然而事過境遷,多年以後回頭看看走過的路,卻很難理順當初所留下的痕跡。培訓新同事或者是在CSDN上解答問題的時候,發現當中有些不錯的苗子,由於缺乏適當的引導,最終會很長一段時間陷入不必要的泥潭之中。這可以說是作者寫下這篇文章的出發點,希望能讓新手學習C語言的時候不再那麼迷惘和彷徨。

上樑不正下樑歪,選書非常關鍵,直接涉及到基礎和底子正不正。作者推薦Stephen Prata大師所著的《C Prime Plus》,套路很正內容翔實,同時涉及到標準和平臺相容性的講解,看完之後還可以一直把它作為參考書籍放在身邊。具有強烈中國特色的譚某某的流行教材,可以直接扔到垃圾桶,那是教育壟斷下的畸形產物,容易走火入魔。

工欲善其事,必先利其器,選擇程式設計環境也是非常重要的。作者推薦Ubuntu/Vim/GCC/GDB組合,Ubuntu是Linux作業系統的傑出代表,Linux與C語言是無縫結合的,另外也考慮到新手在Windows平臺上,很難靜下心來練習,難以抵抗遊戲的誘惑和病毒木馬的騷擾。Vim是最強大的程式碼編輯器之一,而且是隨手可得,不過有一定的學習門檻,如果暫時未下定決心的話,那麼可以先暫時用Gedit來編寫程式碼。GCC是非常強大的跨平臺編譯器,對C語言的標準支援的非常到位,不像VC那樣,總喜歡加一些另類的規則。GDB是和GCC配合的跨平臺偵錯程式,用簡潔的指令就可以完成除錯。蘿蔔芹菜,各有所愛,對於時間有限或者只對GUI有興趣的新手來說,還有一種不錯的選擇,就是直接用Code::Blocks整合開發環境。Code::Blocks是開源跨平臺的C/C++整合開發環境,可以從http://www.codeblocks.org下載,它體積小巧卻功能強大,對Linux和Windows系統它都是支援的。

在C語言的學習過程之中,始終不要忘記欲速則不達的道理,書要一頁一頁一個字一個字的看,習題要踏踏實實的做。對新手而言,學習《C Prime Plus》的平均速度不要超過一個星期一章,一些重點的章節最好要多於兩個星期的研究。在C語言的學習過程之中,難免會遇到各種各樣的問題,可以請教朋友或者是在CSDN上提問。新手提問切忌過於依賴別人,比如像“指標如何理解”、“誰來幫我寫一個數據結構”之類的問題,別人很難真正理解你的需求。提問之前最好先多思考一下,畢竟是你自己需要解決疑惑,提問的時候儘量縮小所涉及的範圍,比如像“如何把IP字串轉為in6_addr型別”、“標頭檔案中為什麼總要加上#ifndef/#define/#endif這樣的巨集語句”這樣的提問就很到位。

不是每個問題都能直接從別人那邊得到滿意的答案,也要逐步學會自己查資料。首先通過Google來尋找方向和線索,百度就算了,查八卦資訊還行。然後通過維基百科進一步細化,最後檢視具體函式的詳細資料。檢視函式資料可以在http://www.kernel.org/doc/man-pages/和http://msdn.microsoft.com/zh-cn/ms348103.aspx直接搜尋,也可以在Linux下輸入man 3加函式名來查詢。

遵循以上的學習步驟和方法,你一定可以完成新手的蛻變,作者也相信你一定會要愛上C語言的!最後補充兩句,整個學習過程是不會用到Makefile的,它可以放在以後再研究。也有人會問,那麼C++又當如何,很簡單的說,把書換成《C++ Prime Plus》,然後用G++代替GCC就可以了。