新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > [編程技巧]C語言的學(xué)法

[編程技巧]C語言的學(xué)法

作者: 時(shí)間:2011-02-16 來源:網(wǎng)絡(luò) 收藏

(一)
很多人對學(xué)習(xí)C語言感到無從下手,經(jīng)常問我同一個問題:究竟怎樣學(xué)習(xí)C語言?我是一個教師,已經(jīng)開發(fā)了很多年的程序,和很多剛剛起步的人一樣,學(xué)習(xí)的第一個計(jì)算機(jī)語言就是C語言。經(jīng)過這些年的開發(fā),我深深的體會到C語言對于一個程序設(shè)計(jì)人員多么的重要,如果不懂C語言,你想寫底層程序這幾乎聽起來很可笑,不懂C語言,你想寫出優(yōu)秀高效的程序,這簡直就是天方夜譚。為什么C語言如此重要呢?

第一:C語言語法結(jié)構(gòu)很簡潔精妙,寫出的程序也很高效,很便于描述算法,大多數(shù)的程序員愿意使用C語言去描述算法本身,所以,如果你想在程序設(shè)計(jì)方面有所建樹,就必須去學(xué)它。
第二:C語言能夠讓你深入系統(tǒng)底層,你知道的操作系統(tǒng),哪一個不是C語言寫的?所有的windows,Unix,Linux,Mac,os/2,沒有一個里外的,如果你不懂C語言,怎么可能深入到這些操作系統(tǒng)當(dāng)中去呢?更不要說你去寫它們的內(nèi)核程序了。
第三:很多新型的語言都是衍生自C語言,C++,Java,C#,J#,perl...哪個不是呢?掌握了C語言,可以說你就掌握了很多門語言,經(jīng)過簡單的學(xué)習(xí),你就可以用這些新型的語言去開發(fā)了,這個再一次驗(yàn)證了C語言是程序設(shè)計(jì)的重要基礎(chǔ)。還有啊,多說一點(diǎn):即使現(xiàn)在招聘程序員,考試都是考C語言,你想加入it行業(yè),那么就一定要掌握好C語言。

那么究竟怎樣學(xué)習(xí)C語言呢?

1:工欲善其事,必先利其器
這里介紹幾個學(xué)習(xí)C語言必備的東東:
一個開發(fā)環(huán)境,例如turboC2.0,這個曾經(jīng)占據(jù)了DOS時(shí)代開發(fā)程序的大半個江山。但是現(xiàn)在windows時(shí)代,用turboC有感覺不方面,編輯程序起來很吃力,并且拖放,更沒有函數(shù)變量自動感應(yīng)功能,查詢參考資料也不方便。建議使用VisualC++,這個東西雖然比較大塊頭,但是一旦安裝好了,用起來很方便。
一本學(xué)習(xí)教程,現(xiàn)在C語言教材多如牛毛,但推薦大家使用《C語言程序設(shè)計(jì)》譚浩強(qiáng)主編第二版清華大學(xué)出版社,此書編寫的很適合初學(xué)者,并且內(nèi)容也很精到。
除此以外,現(xiàn)在有很多輔助學(xué)習(xí)的軟件,畢竟現(xiàn)在是Window時(shí)代了,學(xué)習(xí)軟件多如牛毛,不象我們當(dāng)初學(xué)習(xí),只有讀書做題這么老套。我向大家推薦一個“集成學(xué)習(xí)環(huán)境(C語言)”,里邊的知識點(diǎn)總結(jié)和例程講解都非常好,還有題庫測試環(huán)境,據(jù)說有好幾千題,甚至還有一個windows下的truboC,初學(xué)者甚至不用裝其它的編譯器,就可以練習(xí)編程了,非常適合初學(xué)者。還有一個“C語言學(xué)習(xí)系統(tǒng)”軟件,不過感覺只是一個題庫系統(tǒng),如果你覺得題做的不夠,不妨也可以試試。

2:葵花寶典
學(xué)習(xí)計(jì)算機(jī)語言最好的方法是什么?答曰:讀程序。
沒錯,讀程序是學(xué)習(xí)C語言入門最快,也是最好的方法。如同我,現(xiàn)在學(xué)習(xí)新的J#,C#等其他語言,不再是抱著書本逐行啃,而是學(xué)習(xí)它們的例程。當(dāng)然,對于沒有學(xué)過任何計(jì)算機(jī)語言的初學(xué)者,最好還是先閱讀教程,學(xué)習(xí)完每一章,都要認(rèn)真體會這一章的所有概念,然后不放過這一章中提到的所有例程,然后仔細(xì)研讀程序,直到每一行都理解了,然后找?guī)讉€編程題目,最好是和例程類似的或一樣的,自己試圖寫出這段已經(jīng)讀懂的程序,不要以為例程你已經(jīng)讀懂了,你就可以寫出和它一樣的程序,絕對不一定,不相信你就試一試吧,如果寫不出來,也不要著急,回過頭來再繼續(xù)研究例程,想想自己為什么寫不出來,然后再去寫這段程序,反反復(fù)復(fù),直到你手到擒來為止,祝賀你,你快入門了。

3:登峰造極
寫程序的最高境界其實(shí)就是掌握各種解決問題的手段(數(shù)據(jù)結(jié)構(gòu))和解決問題的方法(算法)。
是不是寫出底層程序就是程序設(shè)計(jì)高手呢?非也,寫底層程序,無非是掌握了硬件的結(jié)構(gòu),況且硬件和硬件還不一樣,要給一個芯片寫驅(qū)動程序,無非就是掌握這塊芯片的各種寄存器及其組合,然后寫值讀值,僅此而已。這不過是熟悉一些io函數(shù)罷了。那么怎樣才算精通程序設(shè)計(jì)呢?怎樣才能精通程序設(shè)計(jì)呢?舉個例子:你面前有10個人,找出一個叫“張三”的人,你該怎么辦?第一種方法:直接對這10個人問:“誰叫張三”。第2種方法:你挨個去問“你是不是張三?”,直到問到的這個人就是張三。第三種方法:你去挨個問一個人“你認(rèn)不認(rèn)識張三,指給我看”。不要小看這個問題,你說當(dāng)然會選第一種方法,沒錯恭喜你答對了,因?yàn)檫@個方法最快,效率最高,但是在程序設(shè)計(jì)中找到解決問題的最優(yōu)方法和你用的手段卻是考驗(yàn)一個程序員程序設(shè)計(jì)水平的重要標(biāo)志,而且是不容易達(dá)到的。剛才這個問題類似于數(shù)據(jù)結(jié)構(gòu)和算法中的:Map數(shù)據(jù)結(jié)構(gòu),窮舉查找和折半查找。所以掌握好數(shù)據(jù)結(jié)構(gòu)和一些常用算法,是登峰造極的必然之路。最后給大家推薦嚴(yán)尉敏的《數(shù)據(jù)結(jié)構(gòu)》清華大學(xué)出版社,希望每一個想成為程序設(shè)計(jì)高手的人研讀此書。

51單片機(jī)相關(guān)文章:51單片機(jī)教程


c語言相關(guān)文章:c語言教程


c++相關(guān)文章:c++教程




評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉