談及C語言珍德,我想凡是學過它的朋友都有這樣一種感覺练般,那就是“讓我歡喜讓我憂矗漾。”歡喜的是薄料,C語言功能非常強大敞贡、應用廣泛,一旦掌握了后摄职,你就可以理直氣壯地對他人說“我是電腦高手嫡锌!”,而且以后若是再自學其他語言就顯得輕而易舉了琳钉。憂慮的是势木,C語言猶如“少林武功”一般博大精深,太難學了歌懒。其實就筆者認為C語言并非是“difficult(困難)”的啦桌,只要你能理清思路,掌握它的精髓及皂,那么自學C語言是一件非常容易且又其樂無窮的事甫男。今天本人就與大家一起談談如何學習C語言或者說學習C語言應從哪幾方面著手。
了解一些基本知識
一.C語言的背景
就個人感觸验烧,無論學習哪門語言首先應該了解一下自己所學語言的背景板驳,也可以說它的發(fā)展史。
C語言屬于高級程序語言的一種碍拆,它的前身是“ALGOL”若治。其創(chuàng)始人是布朗·W·卡尼漢和丹尼斯·M·利奇。C語言問世時是帶有很大的局限性感混,因為它只能用于UNIX系統(tǒng)上端幼。然而隨著科學技術的進步,計算機工業(yè)的發(fā)展弧满,C語言逐漸脫離UNIX婆跑。1987年美國標準化協(xié)會制定了C語言的國際標準,簡稱“ANSI C”庭呜,從此以后它便成為一種廣泛使用的程序語言滑进。C語言的優(yōu)點很多,主要的有如下四點:
1.兼?zhèn)涓呒壵Z言與低級語言的優(yōu)點募谎,屬于一種中間語言扶关。
2.它是一種結(jié)構(gòu)化程序設計語言,非常適合結(jié)構(gòu)化程序設計近哟。
3.有較豐富的數(shù)據(jù)類型驮审、運算符以及函數(shù)供以選用鲫寄。
4.直接與內(nèi)存打交道吉执,使修改疯淫、編輯其他程序與文檔變得輕松,簡單戳玫。
二.二大語系二種不同的學習方法
筆者學習過很多程序語言熙掺,例如:C,C++(C語言的擴展)咕宿,QBASIC币绩,VB(BASIC的可視化),javascript府阀,JSCRIPT 缆镣,VBSCRIPT,JAVA试浙,ASP董瞻,F(xiàn)OXPRO,PERL等等田巴,就本人實踐所得钠糊,其實高級程序語言分為兩大語系。一路是以C為主的程序語言壹哺,例如:javascript抄伍,JAVA等,這類語言在函數(shù)的調(diào)用管宵,程序語句的書寫截珍,循環(huán)的控制都極為相似。另一路是以BASIC為首的程序語言箩朴,例如:FOXPRO笛臣,VBSCRIPT等,此類語言同樣具有相似的函數(shù)調(diào)用隧饼,程序語句書寫以及循環(huán)控制沈堡,但與C語系是不同的。因此若是您以前是從QBASIC起家的燕雁,那么在學習C語言前最好是先洗洗腦诞丽,千萬不要把學習BASIC的方法以及思路用在C身上。
講到這里拐格,我想大家對C語言一定有了感性認識吧僧免!下面讓我們再升華一下,全方位親密接觸它捏浊。學習C語言必須從以下四點入手懂衩,也就是說,只要你能掌握這四點的內(nèi)容,那么基本上就大功告成了浊洞。
1牵敷、多看代碼
在有一定基礎以后一定要多看別人的代碼。 注意代碼中的算法和數(shù)據(jù)結(jié)構(gòu)法希。 畢竟學C之后的關口就是算法和數(shù)據(jù)結(jié)構(gòu)枷餐。提到數(shù)據(jù)結(jié)構(gòu),指針是其中重要的一環(huán)苫亦,絕大多數(shù)的數(shù)據(jù)結(jié)構(gòu)是建立在指針之上的毛肋,如鏈表、隊列屋剑、樹润匙、圖等等,所以只有學好指針才能真正學好C唉匾。別的方面也要關注一下趁桃,諸如變量的命名、庫函數(shù)的用法等等肄鸽。有些庫函數(shù)是經(jīng)常用到的卫病。對于這些函數(shù)的用法就要牢牢記住。
2典徘、要自己動手
編程序是個實干的活蟀苛,光說不練不行。剛開始學的時候可以多練習書上的習題逮诲。 對于自己不明白的地方帜平,自己編個小程序?qū)嶒炓幌率亲詈玫姆椒ǎ芙o自己留下深刻的印象梅鹦。 自己動手的過程中要不斷糾正自己不好的編程習慣和認識錯誤裆甩。有一定的基礎以后可以嘗試編一點小游戲,文曲星之類的電子詞典上小游戲很多齐唆,照著編作為練習嗤栓。基礎很扎實的時候箍邮,可以編一些關于數(shù)據(jù)結(jié)構(gòu)方面的東西茉帅,諸如最經(jīng)典的學生管理系統(tǒng)。之后.....學匯編锭弊、硬件知識堪澎。
3、選擇一個好的編譯器
英文版Turbo C v2.0沒話說味滞,最經(jīng)典的C編譯器(下載地址: 網(wǎng)頁鏈接 )樱蛤,其次推薦一個win-tc 1.91,支持windows下的編譯器钮呀。(下載地址: 網(wǎng)頁鏈接 )
4、關于養(yǎng)成良好的編程習慣
基本上每本C教材上都要提到昨凡。作為新手這條一定要時時遵守爽醋。具體方面:
(1) 在比較復雜的代碼后面要有注釋。 如果光溜溜一堆代碼土匀,別人就不可能看懂你的代碼,而且也不利于查找錯誤形用。除非你一直編東西給自己看就轧。能在代碼里說明白的就一定要在代碼里體現(xiàn)。比如變量名田度、函數(shù)名妒御,在命名的時候盡量說明是干什么用的。
(2)注意語句的嵌套不能過長镇饺,一般來說乎莉,一段代碼里Tab要少于8個。 簡單說就是語句最多8個嵌套奸笤。 對于新手來說惋啃,這個標準還要下降。有一個好習慣是监右,把主函數(shù)盡量寫簡短边灭。經(jīng)常看到別人的代碼是主函數(shù)只有幾行健盒,幾個函數(shù)調(diào)用绒瘦,而定義全在主函數(shù)外部。這樣一是減少了主函數(shù)內(nèi)部的嵌套扣癣,二是比較精簡惰帽,容易讀懂。
(3)注意語句的選擇父虑。并不是分支語句就用if循環(huán)就用while该酗、for。在適當?shù)那闆r下switch和do while語句也是要用的士嚎。在某些時候垂涯,switch語句比if語句更加精練明了,而do while比while少一個循環(huán)航邢。
很多人對學習C語言感到無從下手耕赘,經(jīng)常問我同一個問題:究竟怎樣學習C語言?我是一個教師膳殷,已經(jīng)開發(fā)了很多年的程序操骡,和很多剛剛起步的人一樣九火,學習的第一個計算機語言就是C語言。經(jīng)過這些年的開發(fā)册招,我深深的體會到C語言對于一個程序設計人員多么的重要岔激,如果不懂C語言,你想寫底層程序這幾乎聽起來很可笑是掰,不懂C語言虑鼎,你想寫出優(yōu)秀高效的程序,這簡直就是天方夜譚键痛。為什么C語言如此重要呢炫彩?
第一:C語言語法結(jié)構(gòu)很簡潔精妙,寫出的程序也很高效絮短,很便于描述算法江兢,大多數(shù)的程序員愿意使用C語言去描述算法本身,所以丁频,如果你想在程序設計方面有所建樹杉允,就必須去學它。
第二:C語言能夠讓你深入系統(tǒng)底層席里,你知道的操作系統(tǒng)叔磷,哪一個不是C語言寫的?所有的windows,Unix,Linux,Mac,os/2奖磁,沒有一個里外的世澜,如果你不懂C語言,怎么可能深入到這些操作系統(tǒng)當中去呢署穗?更不要說你去寫它們的內(nèi)核程序了寥裂。
第三:很多新型的語言都是衍生自C語言,C++,Java,C#,J#,perl...哪個不是呢案疲?掌握了C語言封恰,可以說你就掌握了很多門語言,經(jīng)過簡單的學習褐啡,你就可以用這些新型的語言去開發(fā)了诺舔,這個再一次驗證了C語言是程序設計的重要基礎。還有啊备畦,多說一點:即使現(xiàn)在招聘程序員低飒,考試都是考C語言,你想加入it行業(yè)懂盐,那么就一定要掌握好C語言褥赊。
那么究竟怎樣學習C語言呢?
1:工欲善其事莉恼,必先利其器
這里介紹幾個學習C語言必備的東東:
一個開發(fā)環(huán)境拌喉,例如turbo C2.0,這個曾經(jīng)占據(jù)了DOS時代開發(fā)程序的大半個江山速那。但是現(xiàn)在windows時代,用turbo C有感覺不方面尿背,編輯程序起來很吃力弹砚,并且拖放盲镶,更沒有函數(shù)變量自動感應功能,查詢參考資料也不方便史简。建議使用Visual C++,這個東西雖然比較大塊頭翎卓,但是一旦安裝好了疾捍,用起來很方便指郁。
一本學習教程,現(xiàn)在C語言教材多如牛毛道媚,但推薦大家使用《C語言程序設計》譚浩強主編 第二版 清華大學出版社,此書編寫的很適合初學者回窘,并且內(nèi)容也很精到诺擅。
除此以外市袖,現(xiàn)在有很多輔助學習的軟件啡直,畢竟現(xiàn)在是Window時代了,學習軟件多如牛毛苍碟,不象我們當初學習酒觅,只有讀書做題這么老套。我向大家推薦一個“集成學習環(huán)境(C語言)”微峰,里邊的知識點總結(jié)和例程講解都非常好舷丹,還有題庫測試環(huán)境,據(jù)說有好幾千題蜓肆,甚至還有一個windows下的trubo C颜凯,初學者甚至不用裝其它的編譯器,就可以練習編程了,非常適合初學者仗扬。還有一個“C語言學習系統(tǒng)”軟件症概,不過感覺只是一個題庫系統(tǒng),如果你覺得題做的不夠早芭,不妨也可以試試彼城。
2:葵花寶典
學習計算機語言最好的方法是什么?答曰:讀程序退个。
沒錯募壕,讀程序是學習C語言入門最快,也是最好的方法语盈。如同我舱馅,現(xiàn)在學習新的J#,C#等其他語言,不再是抱著書本逐行啃刀荒,而是學習它們的例程习柠。當然匀谣,對于沒有學過任何計算機語言的初學者,最好還是先閱讀教程资溃,學習完每一章武翎,都要認真體會這一章的所有概念,然后不放過這一章中提到的所有例程溶锭,然后仔細研讀程序宝恶,直到每一行都理解了,然后找?guī)讉€編程題目趴捅,最好是和例程類似的或一樣的垫毙,自己試圖寫出這段已經(jīng)讀懂的程序,不要以為例程你已經(jīng)讀懂了拱绑,你就可以寫出和它一樣的程序综芥,絕對不一定,不相信你就試一試吧猎拨,如果寫不出來膀藐,也不要著急,回過頭來再繼續(xù)研究例程红省,想想自己為什么寫不出來额各,然后再去寫這段程序,反反復復吧恃,直到你手到擒來為止虾啦,祝賀你,你快入門了痕寓。
3:登峰造極
寫程序的最高境界其實就是掌握各種解決問題的手段(數(shù)據(jù)結(jié)構(gòu))和解決問題的方法(算法)傲醉。
所以我建議初學者應該以Visual C++ 6.0(不是VisualC++ .NET)或者Dev C++作為主要的學習環(huán)境,而且千萬不要在IDE的使用技巧上過多糾纏呻率,因為今后你一定要轉(zhuǎn)向Unix環(huán)境的硬毕。Visual C++ 6.0使用很方便,調(diào)試也很直觀筷凤,但其默認的編譯器對C標準的支持并不好昭殉,而Dev C
歡迎加入c/c++學習群,群號:666295498藐守,邀請碼:孤塵