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

談及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藐守,邀請碼:孤塵

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末挪丢,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子卢厂,更是在濱河造成了極大的恐慌乾蓬,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,406評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件慎恒,死亡現(xiàn)場離奇詭異任内,居然都是意外死亡撵渡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,395評論 3 398
  • 文/潘曉璐 我一進店門死嗦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來趋距,“玉大人,你說我怎么就攤上這事越除〗诟” “怎么了?”我有些...
    開封第一講書人閱讀 167,815評論 0 360
  • 文/不壞的土叔 我叫張陵摘盆,是天一觀的道長翼雀。 經(jīng)常有香客問我,道長孩擂,這世上最難降的妖魔是什么狼渊? 我笑而不...
    開封第一講書人閱讀 59,537評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮类垦,結(jié)果婚禮上狈邑,老公的妹妹穿的比我還像新娘。我一直安慰自己护锤,他們只是感情好酿傍,可當我...
    茶點故事閱讀 68,536評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著氯析,像睡著了一般莺褒。 火紅的嫁衣襯著肌膚如雪遵岩。 梳的紋絲不亂的頭發(fā)上尘执,一...
    開封第一講書人閱讀 52,184評論 1 308
  • 那天誊锭,我揣著相機與錄音,去河邊找鬼蟆沫。 笑死,一個胖子當著我的面吹牛饭庞,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播救崔,決...
    沈念sama閱讀 40,776評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼劫窒!你這毒婦竟也來了拆座?” 一聲冷哼從身側(cè)響起挪凑,我...
    開封第一講書人閱讀 39,668評論 0 276
  • 序言:老撾萬榮一對情侶失蹤躏碳,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后肄渗,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體翎嫡,經(jīng)...
    沈念sama閱讀 46,212評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡惑申,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,299評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了碗脊。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,438評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖赦拘,靈堂內(nèi)的尸體忽然破棺而出芬沉,到底是詐尸還是另有隱情丸逸,我是刑警寧澤,帶...
    沈念sama閱讀 36,128評論 5 349
  • 正文 年R本政府宣布,位于F島的核電站憔维,受9級特大地震影響业扒,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜蹭沛,卻給世界環(huán)境...
    茶點故事閱讀 41,807評論 3 333
  • 文/蒙蒙 一致板、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧素征,春花似錦御毅、人聲如沸端蛆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,279評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽捶索。三九已至灰瞻,卻和暖如春酝润,著一層夾襖步出監(jiān)牢的瞬間要销,已是汗流浹背底瓣。 一陣腳步聲響...
    開封第一講書人閱讀 33,395評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留茁肠,地道東北人垦梆。 一個月前我還...
    沈念sama閱讀 48,827評論 3 376
  • 正文 我出身青樓仅孩,卻偏偏與公主長得像辽慕,于是被迫代替她去往敵國和親溅蛉。 傳聞我的和親對象是個殘疾皇子船侧,可洞房花燭夜當晚...
    茶點故事閱讀 45,446評論 2 359

推薦閱讀更多精彩內(nèi)容