一個資深C語言工程師說如何學習C語言

談及C語言,我想凡是學過它的朋友都有這樣一種感覺,那就是“讓我歡喜讓我憂。”歡喜的是,C語言功能非常強大、應用廣泛,一旦掌握了後,你就可以理直氣壯地對他人說“我是電腦高手!”,而且以後若是再自學其他語言就顯得輕而易舉了。憂慮的是,C語言猶如“少林武功”一般博大精深,太難學了。其實就筆者認爲C語言並非是“difficult(困難)”的,只要你能理清思路,掌握它的精髓,那麼自學C語言是一件非常容易且又其樂無窮的事。今天本人就與大家一起談談如何學習C語言或者說學習C語言應從哪幾方面着手。

瞭解一些基本知識

一.C語言的背景

就個人感觸,無論學習哪門語言首先應該瞭解一下自己所學語言的背景,也可以說它的發展史。

C語言屬於高級程序語言的一種,它的前身是“ALGOL”。其創始人是布朗·W·卡尼漢和丹尼斯·M·利奇。C語言問世時是帶有很大的侷限性,因爲它只能用於UNIX系統上。然而隨着科學技術的進步,計算機工業的發展,C語言逐漸脫離UNIX。1987年美國標準化協會制定了C語言的國際標準,簡稱“ANSI C”,從此以後它便成爲一種廣泛使用的程序語言。C語言的優點很多,主要的有如下四點:

1.兼備高級語言與低級語言的優點,屬於一種中間語言。

2.它是一種結構化程序設計語言,非常適合結構化程序設計。

3.有較豐富的數據類型、運算符以及函數供以選用。

4.直接與內存打交道,使修改、編輯其他程序與文檔變得輕鬆,簡單。

二.二大語系二種不同的學習方法

筆者學習過很多程序語言,例如:C,C++(C語言的擴展),QBASIC,VB(BASIC的可視化),javascript,JSCRIPT ,VBSCRIPT,JAVA,ASP,FOXPRO,PERL等等,就本人實踐所得,其實高級程序語言分爲兩大語系。一路是以C爲主的程序語言,例如:javascript,JAVA等,這類語言在函數的調用,程序語句的書寫,循環的控制都極爲相似。另一路是以BASIC爲首的程序語言,例如:FOXPRO,VBSCRIPT等,此類語言同樣具有相似的函數調用,程序語句書寫以及循環控制,但與C語系是不同的。因此若是您以前是從QBASIC起家的,那麼在學習C語言前最好是先洗洗腦,千萬不要把學習BASIC的方法以及思路用在C身上。

講到這裏,我想大家對C語言一定有了感性認識吧!下面讓我們再昇華一下,全方位親密接觸它。學習C語言必須從以下四點入手,也就是說,只要你能掌握這四點的內容,那麼基本上就大功告成了。

1、多看代碼

在有一定基礎以後一定要多看別人的代碼。 注意代碼中的算法和數據結構。 畢竟學C之後的關口就是算法和數據結構。提到數據結構,指針是其中重要的一環,絕大多數的數據結構是建立在指針之上的,如鏈表、隊列、樹、圖等等,所以只有學好指針才能真正學好C。別的方面也要關注一下,諸如變量的命名、庫函數的用法等等。有些庫函數是經常用到的。對於這些函數的用法就要牢牢記住。

2、要自己動手

編程序是個實幹的活,光說不練不行。剛開始學的時候可以多練習書上的習題。 對於自己不明白的地方,自己編個小程序實驗一下是最好的方法,能給自己留下深刻的印象。 自己動手的過程中要不斷糾正自己不好的編程習慣和認識錯誤。有一定的基礎以後可以嘗試編一點小遊戲,文曲星之類的電子詞典上小遊戲很多,照着編作爲練習。基礎很紮實的時候,可以編一些關於數據結構方面的東西,諸如最經典的學生管理系統。之後…學彙編、硬件知識。

3、選擇一個好的編譯器

英文版Turbo C v2.0沒話說,最經典的C編譯器(下載地址: 網頁鏈接 ),其次推薦一個win-tc 1.91,支持windows下的編譯器。(下載地址: 網頁鏈接 )

4、關於養成良好的編程習慣

基本上每本C教材上都要提到。作爲新手這條一定要時時遵守。具體方面:

(1) 在比較複雜的代碼後面要有註釋。 如果光溜溜一堆代碼,別人就不可能看懂你的代碼,而且也不利於查找錯誤。除非你一直編東西給自己看。能在代碼裏說明白的就一定要在代碼裏體現。比如變量名、函數名,在命名的時候儘量說明是幹什麼用的。

(2)注意語句的嵌套不能過長,一般來說,一段代碼裏Tab要少於8個。 簡單說就是語句最多8個嵌套。 對於新手來說,這個標準還要下降。有一個好習慣是,把主函數儘量寫簡短。經常看到別人的代碼是主函數只有幾行,幾個函數調用,而定義全在主函數外部。這樣一是減少了主函數內部的嵌套,二是比較精簡,容易讀懂。

(3)注意語句的選擇。並不是分支語句就用if循環就用while、for。在適當的情況下switch和do while語句也是要用的。在某些時候,switch語句比if語句更加精練明瞭,而do while比while少一個循環。

很多人對學習C語言感到無從下手,經常問我同一個問題:究竟怎樣學習C語言?我是一個教師,已經開發了很多年的程序,和很多剛剛起步的人一樣,學習的第一個計算機語言就是C語言。經過這些年的開發,我深深的體會到C語言對於一個程序設計人員多麼的重要,如果不懂C語言,你想寫底層程序這幾乎聽起來很可笑,不懂C語言,你想寫出優秀高效的程序,這簡直就是天方夜譚。爲什麼C語言如此重要呢?

第一:C語言語法結構很簡潔精妙,寫出的程序也很高效,很便於描述算法,大多數的程序員願意使用C語言去描述算法本身,所以,如果你想在程序設計方面有所建樹,就必須去學它。

第二:C語言能夠讓你深入系統底層,你知道的操作系統,哪一個不是C語言寫的?所有的windows,Unix,Linux,Mac,os/2,沒有一個裏外的,如果你不懂C語言,怎麼可能深入到這些操作系統當中去呢?更不要說你去寫它們的內核程序了。

第三:很多新型的語言都是衍生自C語言,C++,Java,C#,J#,perl…哪個不是呢?掌握了C語言,可以說你就掌握了很多門語言,經過簡單的學習,你就可以用這些新型的語言去開發了,這個再一次驗證了C語言是程序設計的重要基礎。還有啊,多說一點:即使現在招聘程序員,考試都是考C語言,你想加入it行業,那麼就一定要掌握好C語言。

那麼究竟怎樣學習C語言呢?

1:工欲善其事,必先利其器

這裏介紹幾個學習C語言必備的東東:

一個開發環境,例如turbo C2.0,這個曾經佔據了DOS時代開發程序的大半個江山。但是現在windows時代,用turbo C有感覺不方面,編輯程序起來很吃力,並且拖放,更沒有函數變量自動感應功能,查詢參考資料也不方便。建議使用Visual C++,這個東西雖然比較大塊頭,但是一旦安裝好了,用起來很方便。

一本學習教程,現在C語言教材多如牛毛,但推薦大家使用《C語言程序設計》譚浩強主編 第二版 清華大學出版社,此書編寫的很適合初學者,並且內容也很精到。

除此以外,現在有很多輔助學習的軟件,畢竟現在是Window時代了,學習軟件多如牛毛,不象我們當初學習,只有讀書做題這麼老套。我向大家推薦一個“集成學習環境(C語言)”,裏邊的知識點總結和例程講解都非常好,還有題庫測試環境,據說有好幾千題,甚至還有一個windows下的trubo C,初學者甚至不用裝其它的編譯器,就可以練習編程了,非常適合初學者。還有一個“C語言學習系統”軟件,不過感覺只是一個題庫系統,如果你覺得題做的不夠,不妨也可以試試。

2:葵花寶典

學習計算機語言最好的方法是什麼?答曰:讀程序。

沒錯,讀程序是學習C語言入門最快,也是最好的方法。如同我,現在學習新的J#,C#等其他語言,不再是抱着書本逐行啃,而是學習它們的例程。當然,對於沒有學過任何計算機語言的初學者,最好還是先閱讀教程,學習完每一章,都要認真體會這一章的所有概念,然後不放過這一章中提到的所有例程,然後仔細研讀程序,直到每一行都理解了,然後找幾個編程題目,最好是和例程類似的或一樣的,自己試圖寫出這段已經讀懂的程序,不要以爲例程你已經讀懂了,你就可以寫出和它一樣的程序,絕對不一定,不相信你就試一試吧,如果寫不出來,也不要着急,回過頭來再繼續研究例程,想想自己爲什麼寫不出來,然後再去寫這段程序,反反覆覆,直到你手到擒來爲止,祝賀你,你快入門了。

3:登峯造極

寫程序的最高境界其實就是掌握各種解決問題的手段(數據結構)和解決問題的方法(算法)。

所以我建議初學者應該以Visual C++ 6.0(不是VisualC++ .NET)或者Dev C++作爲主要的學習環境,而且千萬不要在IDE的使用技巧上過多糾纏,因爲今後你一定要轉向Unix環境的。Visual C++ 6.0使用很方便,調試也很直觀,但其默認的編譯器對C標準的支持並不好,而Dev C。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章