C語言是一門古老的語言,它是1972年由美國的Dennis Ritchie設(shè)計(jì)發(fā)明的,并首次在UNIX操作系統(tǒng)的 DEC PDP-11 計(jì)算機(jī)上使用。C語言是一門中級語言,它把高級語言的基本結(jié)構(gòu)和語句與低級語言的實(shí)用性結(jié)合起來。經(jīng)過C語言的學(xué)習(xí),可以為嵌入式編程和其他高級語言的學(xué)習(xí)和應(yīng)用打下良好的基礎(chǔ)。 C語言是一門要求嚴(yán)格的結(jié)構(gòu)化編程語言,其他面向?qū)ο蟮母呒壵Z言也需要由結(jié)構(gòu)化程序模塊來組成。雖然C語言的編譯很容易出現(xiàn)各種對數(shù)據(jù)及指針的操作錯誤,但也迫使使用者養(yǎng)成細(xì)心嚴(yán)謹(jǐn)?shù)木幊虘B(tài)度。而且C語言是純結(jié)構(gòu)化程序編程,少了面向?qū)ο蟮募夹g(shù),容易被編程初學(xué)者接受。 為什么每個程序員都應(yīng)該學(xué)習(xí)C語言? 每個程序員在他們的編程生涯中都應(yīng)該學(xué)習(xí)C語言,因?yàn)樗刑嚯y以忽視的好處了。除了它會給你提供更多的工作機(jī)會之外,C語言還會教給你更多的關(guān)于計(jì)算機(jī)的知識。它能給我們提供的裨益,簡單列舉如下: 1) 相比較其他的編程語言(像C++,JAVA),C語言是個低級語言。從總體上來說,低級的編程語言可以讓你更好的了解計(jì)算機(jī)。 2) 設(shè)備驅(qū)動程序和操作系統(tǒng)只能用C語言來編寫。現(xiàn)在,你可能還從來沒有編寫過一個設(shè)備驅(qū)動程序或者一個操作系統(tǒng),但是如果你需要去修改他們的時候,怎么辦? 3) 如果你想要得到一份編寫微控制器程序的工作的時候,該怎么辦?他們都是用C語言編寫的。就因?yàn)椴幌雽W(xué)習(xí)一門新的語言,你就準(zhǔn)備限制你能得到工作的機(jī)會嗎? 4) C的程序比其他用別的語言寫的程序,實(shí)現(xiàn)相同的功能,它用的代碼行數(shù)更少,而它帶來的運(yùn)行效率卻更快。有時候,你的程序所需要的速度,只有C語言能做到。 5) 如果你學(xué)習(xí)過C語言,你就能學(xué)習(xí)現(xiàn)在任何的高級編程語言。因?yàn)樗械母呒壵Z言都是以C語言為基礎(chǔ)的(像JAVA,C++,C#等等)。 6) 因?yàn)镃語言已經(jīng)存在很多年了,它有廣泛的使用團(tuán)體并且有大量的現(xiàn)成代碼可以利用。這就使你能在過去程序的基礎(chǔ)上,快速和高效的編寫新的算法和函數(shù)。 7) C語言是一個開源組織的語言。一個開源組織的產(chǎn)物--LINUX,就是用C語言寫的。如果你會C語言,你就能參加這個組織并且還能向眾多的開源組織投稿,比如參加Source Forge并且給他們投稿。 8) C語言是一個向你闡述指針的本質(zhì)的語言。而C#和Java干脆跳過了指針這個題目。可是指針確實(shí)使C語言變得更加強(qiáng)大。 9) 找編程開發(fā)方面的工作時,C語言仍然是最普遍需要的語言。所以它值得你花時間去學(xué)會它。 10)任何里面有微處理器的設(shè)備都支持C語言。從微波爐到手機(jī),都是由C語言技術(shù)來推動的。 好了,說了這么多,大家應(yīng)該感到我們應(yīng)該學(xué)習(xí)C語言的必要性和迫切性了吧!總而言之,對初學(xué)者來說,簡單并要求嚴(yán)格的C語言絕對是你開始編程之旅的首選,C語言入手比其他高級語言快,學(xué)好了C語言后學(xué)習(xí)其他語言簡直事半功倍(個人感覺)?,F(xiàn)在大多數(shù)大學(xué)本科都選擇了C語言程序編程作為編程課程的基礎(chǔ)課,聽說有的學(xué)校開設(shè)的課程是更為基礎(chǔ)的PASCAL語言,但這門語言實(shí)用性比C語言低的多,現(xiàn)在好多底層開發(fā)和嵌入式程序設(shè)計(jì)以及驅(qū)動程序的編寫依然使用C語言。而且C語言的發(fā)展方向多,嵌入式多數(shù)用匯編和C語言,大型游戲開發(fā)也以C和C++居多。 C++難嗎? 其實(shí)C++并不難,眾所周知C++是由C語言發(fā)展而來的,如果你有過C語言基礎(chǔ)或者是JAVA語言基礎(chǔ),C++學(xué)起來就不會感覺難,當(dāng)然,學(xué)好了C++再去接觸C語言,JAVA語言以及C#語言都會比較簡單,它們語法都有相通的地方。關(guān)于C++,他的語句書寫起來比較自由,這是對于C語言進(jìn)步的地方,但正是由于這種情況,導(dǎo)致程序員不易發(fā)現(xiàn)C++中的錯誤。C++的應(yīng)用范圍比任何語言都要廣泛,初學(xué)C++只要掌握了基本的技巧與語法,學(xué)習(xí)C++就不會感覺難了。C++基本構(gòu)成單位是函數(shù),C++的每句話都是由主函數(shù)引導(dǎo),由于它的自由化,主函數(shù)寫在哪里都可以,但程序的執(zhí)行都是從主函數(shù)開始的?,F(xiàn)在學(xué)C++的人特別多,C++的靈活性是大多數(shù)程序員所青睞的,相信你一定會有所成就的! 送給正在學(xué)習(xí)C++朋友的50條必讀建議(絕對經(jīng)典。?。。?/strong> 1.把c++當(dāng)成一門新的語言學(xué)習(xí)(和c沒啥關(guān)系!真的。); 2.看《thinking in c++》,不要看《c++變成死相》; 3.看《the c++ programming language》和《inside the c++ object model》,不要因?yàn)樗麄兒茈y而我們自己是初學(xué)者所以就不看; 4.不要被vc、bcb、bc、mc、tc等詞匯所迷惑——他們都是集成開發(fā)環(huán)境,而我們要學(xué)的是一門語言; 5.不要放過任何一個看上去很簡單的小編程問題——他們往往并不那么簡單,或者可以引伸出很多知識點(diǎn); 6.會用visual c++,并不說明你會c++; 7.學(xué)class并不難,template、stl、generic programming也不過如此——難的是長期堅(jiān)持實(shí)踐和不遺余力的博覽群書; 8.如果不是天才的話,想學(xué)編程就不要想玩游戲——你以為你做到了,其實(shí)你的c++水平并沒有和你通關(guān)的能力一起變高——其實(shí)可以時刻記?。簩W(xué)c++是為了編游戲的; 9.看visual c++的書,是學(xué)不了c++語言的; 10.浮躁的人容易說:xx語言不行了,應(yīng)該學(xué)yy;——是你自己不行了吧!? 11.浮躁的人容易問:我到底該學(xué)什么;——別問,學(xué)就對了; 12.浮躁的人容易問:xx有錢途嗎;——建議你去搶銀行; 13.浮躁的人容易說:我要中文版!我英文不行!——不行?學(xué)呀! 14.浮躁的人容易問:xx和yy哪個好;——告訴你吧,都好——只要你學(xué)就行; 15.浮躁的人分兩種:a)只觀望而不學(xué)的人;b)只學(xué)而不堅(jiān)持的人; 16.把時髦的技術(shù)掛在嘴邊,還不如把過時的技術(shù)記在心里; 17.c++不僅僅是支持面向?qū)ο蟮某绦蛟O(shè)計(jì)語言; 18.學(xué)習(xí)編程非常好的方法之一就是閱讀源代碼; 19.在任何時刻都不要認(rèn)為自己手中的書已經(jīng)足夠了; 20.請閱讀《the standard c++ bible》(中文版:標(biāo)準(zhǔn)c++寶典),掌握c++標(biāo)準(zhǔn); 21.看得懂的書,請仔細(xì)看;看不懂的書,請硬著頭皮看; 22.別指望看第一遍書就能記住和掌握什么——請看第二遍、第三遍; 23.請看《effective c++》和《more effective c++》以及《excepti c++》; 24.不要停留在集成開發(fā)環(huán)境的搖籃上,要學(xué)會控制集成開發(fā)環(huán)境,還要學(xué)會用命令行方式處理程序; 25.和別人一起討論有意義的c++知識點(diǎn),而不是爭吵xx行不行或者yy與zz哪個好; 26.請看《程序設(shè)計(jì)實(shí)踐》,并嚴(yán)格的按照其要求去做; 27.不要因?yàn)閏和c++中有一些語法和關(guān)鍵字看上去相同,就認(rèn)為它們的意義和作用完全一樣; 28.c++絕不是所謂的c的“擴(kuò)充”——如果c++一開始就起名叫z語言,你一定不會把c和z語言聯(lián)系得那么緊密; 29.請不要認(rèn)為學(xué)過xx語言再改學(xué)c++會有什么問題——你只不過又在學(xué)一門全新的語言而已; 30.讀完了《inside the c++ object model》以后再來認(rèn)定自己是不是已經(jīng)學(xué)會了c++; 31.學(xué)習(xí)編程的秘訣是:編程,編程,再編程; 32.請留意下列書籍:《c++面向?qū)ο蟾咝Ь幊蹋╟++ effective object-oriented software c software c patterns)》《the art of computer programming》; 33.記住:面向?qū)ο蠹夹g(shù)不只是c++專有的; 34.請把書上的程序例子親手輸入到電腦上實(shí)踐,即使配套光盤中有源代碼; 35.把在書中看到的有意義的例子擴(kuò)充; 36.請重視c++中的異常處理技術(shù),并將其切實(shí)的運(yùn)用到自己的程序中; 37.經(jīng)?;仡欁约阂郧皩戇^的程序,并嘗試重寫,把自己學(xué)到的新知識運(yùn)用進(jìn)去; 38.不要漏掉書中任何一個練習(xí)題——請全部做完并記錄下解題思路; 39.c++語言和c++的集成開發(fā)環(huán)境要同時學(xué)習(xí)和掌握; 40.既然決定了學(xué)c++,就請堅(jiān)持學(xué)下去,因?yàn)閷W(xué)習(xí)程序設(shè)計(jì)語言的目的是掌握程序設(shè)計(jì)技術(shù),而程序設(shè)計(jì)技術(shù)是跨語言的; 41.就讓c++語言的各種平臺和開發(fā)環(huán)境去激烈的競爭吧,我們要以學(xué)習(xí)c++語言本身為主; 42.當(dāng)你寫c++程序?qū)懙揭话雲(yún)s發(fā)現(xiàn)自己用的方法很拙劣時,請不要馬上停手;請盡快將余下的部分粗略的完成以保證這個設(shè)計(jì)的完整性,然后分析自己的錯誤并重新設(shè)計(jì)和編寫; 43.別心急,設(shè)計(jì)c++的class確實(shí)不容易;自己程序中的class和自己的class設(shè)計(jì)水平是在不斷的編程實(shí)踐中完善和發(fā)展的; 44.絕不要因?yàn)槌绦颉昂苄 本筒蛔裱承┠悴皇炀毜囊?guī)則——好習(xí)慣是培養(yǎng)出來的,而不是一次記住的; 45.每學(xué)到一個c++難點(diǎn)的時候,嘗試著對別人講解這個知識點(diǎn)并讓他理解——你能講清楚才說明你真的理解了; 46.記錄下在和別人交流時發(fā)現(xiàn)的自己忽視或不理解的知識點(diǎn); 47.請不斷的對自己寫的程序提出更高的要求,哪怕你的程序版本號會變成version 100.xx; 48.保存好你寫過的所有的程序——那是你非常好的積累之一; 49.請不要做浮躁的人; 50.請熱愛c++! |
|