C語言不算難,也不算簡單。但是我從高一到高三斷斷續(xù)續(xù)的看了三年,才算會寫點(diǎn)代碼。既然都問我,怎樣才能學(xué)好C,就隨便談下,寫得不好,請多批評。
說C不難,因?yàn)樗年P(guān)鍵字少,基本結(jié)構(gòu)化語句就if while for switch四個(while和switch 還不是必須的結(jié)構(gòu)化語句),基本數(shù)據(jù)類型也不多,再加上函數(shù),數(shù)組和指針就可以說差不多了。如果是從微機(jī)原理,編譯原理,操作系統(tǒng)這樣科班式的一步步學(xué)上來,基本沒什么障礙。
但是,很少人是這樣開始學(xué)C語言的。更多的是在搞不懂代碼是怎么編譯成指令的,函數(shù)是怎么入棧的,main是被誰調(diào)用的,printf、scanf是怎么輸入輸出的情況下,拿來一本老譚的C語言教材,自愿的接受他的忽悠,如墜云里霧里,愈加的思維錯亂。最后放棄了開始時候的決心,作個小抄,應(yīng)付考試了事。
如果僅僅是想應(yīng)付考試,快去做小抄,沒有比這更有效率的方法,或者說其它途徑與之相比,就是沒效率可言。如果不是,很高興我們有相同的志向。
如果你現(xiàn)在拿的是一本國內(nèi)所著的教材(當(dāng)然就是指xxx寫的那本《xxxxxxx》),那么建議你最好開拓一下眼界,讀一下
《The C programming Language》或者《The Complete Reference C 》的片斷( 原版和翻譯的都可以), 然后和老譚的那本比較下,選擇一本更適合你的。我不是說老譚的書或者國內(nèi)的書真的有什么不好,但是多看老譚的書真的沒啥大好處,無數(shù)入門者就是被老譚的書忽悠來忽悠去的。
雖然老外的書不錯,但是那些大師們不會像老譚那樣,教你用Turbo C 一步步地來進(jìn)行從編輯到編譯再到調(diào)試的步驟。于是很多人就是拿著書,對著機(jī)器里的VC、GCC、Borload C發(fā)愣,一個link錯誤能糾纏半天時間,‘預(yù)編譯頭文件未找到’成了各個C論壇上流行的問題。雖然現(xiàn)在都是從vc的ide環(huán)境開始上手,但是被vc隱藏起來的precompile,compile,link的過程要了解,經(jīng)典的make,as,ld 等工具要知道。然后,打開你的vc,建立 win32 console app,輸入那個經(jīng)典的hello world ,開始學(xué)習(xí)C語言的漫漫征程吧。
C的語法真的很簡單,用心的人一周肯定能掌握。指針、數(shù)組、多維數(shù)組的特性需要點(diǎn)感性體驗(yàn),可以畫圖,也可以去機(jī)器上多實(shí)踐,把地址打印出來,把數(shù)值打印出來,來和設(shè)想的比較下,多實(shí)驗(yàn)幾次就能弄明白了。
語法的學(xué)習(xí)只是開始,要能分析實(shí)際問題,然后寫程序去解決它,還需要涉及諸如數(shù)據(jù)結(jié)構(gòu)、設(shè)計模式及軟件工程的鄰域。另外現(xiàn)代軟件基本都需要圖形界面(gui),網(wǎng)絡(luò)支持,數(shù)據(jù)庫支持等,為此還需要了解各種平臺的GUI庫,socket庫 和 操作系統(tǒng)API。真的寫程序,還需要閱讀大量的代碼,老外的書里提供了不少典型的代碼(比國內(nèi)的好的多),更多的需要自己去找來讀??梢哉f,寫一行代碼,是讀了上百行后的積累,而語法的學(xué)習(xí),只是為了讓你能看懂他人的代碼,而不是教你如何寫代碼。
C可以說是一門古老的語言了,和他同時代的語言現(xiàn)在都已淡離了人們的視線。而C語言儼然成為了軟件領(lǐng)域的中堅力量,支撐著整個軟件行業(yè),學(xué)好了C語言,以后不管是再學(xué)習(xí)Java、.net或是動態(tài)語言,都既輕松又愉快。
posted on 2009-03-13 23:16
zarra 閱讀(211)
評論(1) 編輯 收藏