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