每次一談及到C語(yǔ)言C++,我想C語(yǔ)言C++功能強(qiáng)大都應(yīng)該知道、應(yīng)用廣泛,一旦掌握了后,你就可以理直氣壯地對(duì)他人說(shuō)“我是電腦高手!”,而且以后若是再自學(xué)其他語(yǔ)言就顯得輕而易舉了。憂慮的是,C語(yǔ)言C++博大精深,太難學(xué)了。其實(shí)就筆者認(rèn)為C語(yǔ)言C++并非是“difficult(困難)”的,只要你能理清思路,掌握它的精髓,配合一套教材。那么學(xué)C語(yǔ)言C++是一件非常容易且又其樂(lè)無(wú)窮的事。今天本人就與大家一起談?wù)勅绾螌W(xué)習(xí)C語(yǔ)言C++或者說(shuō)學(xué)習(xí)C語(yǔ)言C++應(yīng)從哪幾方面著手。入門書籍推薦C++ primer(難度較高,自行提煉內(nèi)容)有電子版書籍第三版和第五版自己可以來(lái)下載。
第一點(diǎn):首先要了解一些基本知識(shí)
一.C語(yǔ)言C++的背景
就個(gè)人感覺(jué),無(wú)論學(xué)習(xí)哪門編程語(yǔ)言首先應(yīng)該了解一下自己所學(xué)編程語(yǔ)言的背景,也可以說(shuō)它的發(fā)展史。
C語(yǔ)言C++屬于高級(jí)程序語(yǔ)言的一種,它的前身是“ALGOL”。其創(chuàng)始人是布朗·W·卡尼漢和丹尼斯·M·利奇。C語(yǔ)言C++問(wèn)世時(shí)是帶有很大的局限性,因?yàn)樗荒苡糜赨NIX系統(tǒng)上。然而隨著科學(xué)技術(shù)的進(jìn)步,計(jì)算機(jī)工業(yè)的發(fā)展,C語(yǔ)言C++逐漸脫離UNIX。1987年美國(guó)標(biāo)準(zhǔn)化協(xié)會(huì)制定了C語(yǔ)言C++的國(guó)際標(biāo)準(zhǔn),簡(jiǎn)稱“ANSI C”,從此以后它便成為一種廣泛使用的程序語(yǔ)言。C語(yǔ)言C++的優(yōu)點(diǎn)很多,主要的有如下四點(diǎn):
1.兼?zhèn)涓呒?jí)語(yǔ)言與低級(jí)語(yǔ)言的優(yōu)點(diǎn),屬于一種中間語(yǔ)言。大家知道了么
2.它是一種結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言,非常適合結(jié)構(gòu)化程序設(shè)計(jì)。大家知道了么
3.有較豐富的數(shù)據(jù)類型、運(yùn)算符以及函數(shù)供以選用。大家知道了么
4.直接與內(nèi)存打交道,使修改、編輯其他程序與文檔變得輕松,簡(jiǎn)單。大家知道了么
二.二大語(yǔ)言體系二種不同的學(xué)習(xí)方法
筆者學(xué)習(xí)過(guò)很多程序語(yǔ)言,例如:C,C++(C語(yǔ)言的擴(kuò)展),QBASIC,VB(BASIC的可視化),javascript,JSCRIPT ,VBSCRIPT,JAVA,ASP,F(xiàn)OXPRO,PERL等等,就本人實(shí)踐所得,其實(shí)高級(jí)程序語(yǔ)言分為兩大語(yǔ)系。一路是以C為主的程序語(yǔ)言,例如:javascript,JAVA等,這類語(yǔ)言在函數(shù)的調(diào)用,程序語(yǔ)句的書寫,循環(huán)的控制都極為相似。另一路是以BASIC為首的程序語(yǔ)言,例如:FOXPRO,VBSCRIPT等,此類語(yǔ)言同樣具有相似的函數(shù)調(diào)用,程序語(yǔ)句書寫以及循環(huán)控制,但與C語(yǔ)系是不同的。因此若是您以前是從QBASIC起家的,那么在學(xué)習(xí)C語(yǔ)言前最好是先洗洗腦,千萬(wàn)不要把學(xué)習(xí)BASIC的方法以及思路用在C身上。
講到這里,我想大家對(duì)C語(yǔ)言C++一定有了感性認(rèn)識(shí)吧!下面讓我們?cè)偕A一下,全方位親密接觸它。學(xué)習(xí)C語(yǔ)言C++必須從以下四點(diǎn)入手,也就是說(shuō),只要你能掌握這四點(diǎn)的內(nèi)容,那么基本上就大功告成了。
1、入門后多看代碼
在有一定基礎(chǔ)以后一定要多看別人的代碼。 注意代碼中的算法和數(shù)據(jù)結(jié)構(gòu)。 畢竟學(xué)C之后的關(guān)口就是算法和數(shù)據(jù)結(jié)構(gòu)。提到數(shù)據(jù)結(jié)構(gòu),指針是其中重要的一環(huán),絕大多數(shù)的數(shù)據(jù)結(jié)構(gòu)是建立在指針之上的,如鏈表、隊(duì)列、樹、圖等等,所以只有學(xué)好指針才能真正學(xué)好C。別的方面也要關(guān)注一下,諸如變量的命名、庫(kù)函數(shù)的用法等等。有些庫(kù)函數(shù)是經(jīng)常用到的。對(duì)于這些函數(shù)的用法就要牢牢記住。大家知道了沒(méi)
2、要自己動(dòng)手
編程序是個(gè)實(shí)干的活,光說(shuō)不練不行。剛開(kāi)始學(xué)的時(shí)候可以多練習(xí)書上的習(xí)題。 對(duì)于自己不明白的地方,自己編個(gè)小程序?qū)嶒?yàn)一下是最好的方法,能給自己留下深刻的印象。 自己動(dòng)手的過(guò)程中要不斷糾正自己不好的編程習(xí)慣和認(rèn)識(shí)錯(cuò)誤。有一定的基礎(chǔ)以后可以嘗試編一點(diǎn)小游戲,照著編作為練習(xí)?;A(chǔ)很扎實(shí)的時(shí)候,可以編一些關(guān)于數(shù)據(jù)結(jié)構(gòu)方面的東西。之后.....學(xué)匯編、硬件知識(shí)。大家知道了沒(méi)
3、選擇一個(gè)好的編譯器
GCC或者VS都是一個(gè)號(hào)的選擇
4、關(guān)于養(yǎng)成良好的編程習(xí)慣
(1) 在比較復(fù)雜的代碼后面要有注釋。 如果光溜溜一堆代碼,別人就不可能看懂你的代碼,而且也不利于查找錯(cuò)誤。除非你一直編東西給自己看。能在代碼里說(shuō)明白的就一定要在代碼里體現(xiàn)。比如變量名、函數(shù)名,在命名的時(shí)候盡量說(shuō)明是干什么用的。大家知道了沒(méi)
(2)注意語(yǔ)句的嵌套不能過(guò)長(zhǎng),一般來(lái)說(shuō),一段代碼里Tab要少于8個(gè)。 簡(jiǎn)單說(shuō)就是語(yǔ)句最多8個(gè)嵌套。 對(duì)于新手來(lái)說(shuō),這個(gè)標(biāo)準(zhǔn)還要下降。有一個(gè)好習(xí)慣是,把主函數(shù)盡量寫簡(jiǎn)短。經(jīng)??吹絼e人的代碼是主函數(shù)只有幾行,幾個(gè)函數(shù)調(diào)用,而定義全在主函數(shù)外部。這樣一是減少了主函數(shù)內(nèi)部的嵌套,二是比較精簡(jiǎn),容易讀懂。大家知道了沒(méi)
(3)注意語(yǔ)句的選擇。并不是分支語(yǔ)句就用if循環(huán)就用while、for。在適當(dāng)?shù)那闆r下switch和do while語(yǔ)句也是要用的。在某些時(shí)候,switch語(yǔ)句比if語(yǔ)句更加精練明了,而do while比while少一個(gè)循環(huán)。大家知道了沒(méi)
很多人對(duì)學(xué)習(xí)C語(yǔ)言感到無(wú)從下手,經(jīng)常問(wèn)我同一個(gè)問(wèn)題:究竟怎樣學(xué)習(xí)C語(yǔ)言?我是一個(gè)教師,已經(jīng)開(kāi)發(fā)了很多年的程序,和很多剛剛起步的人一樣,學(xué)習(xí)的第一個(gè)計(jì)算機(jī)語(yǔ)言就是C語(yǔ)言。經(jīng)過(guò)這些年的開(kāi)發(fā),我深深的體會(huì)到C語(yǔ)言對(duì)于一個(gè)程序設(shè)計(jì)人員多么的重要,如果不懂C語(yǔ)言,你想寫底層程序這幾乎聽(tīng)起來(lái)很可笑,不懂C語(yǔ)言,你想寫出優(yōu)秀高效的程序,這簡(jiǎn)直就是天方夜譚。為什么C語(yǔ)言如此重要呢?大家知道了沒(méi)
第一:C語(yǔ)言語(yǔ)法結(jié)構(gòu)很簡(jiǎn)潔精妙,寫出的程序也很高效,很便于描述算法,大多數(shù)的程序員愿意使用C語(yǔ)言去描述算法本身,所以,如果你想在程序設(shè)計(jì)方面有所建樹,就必須去學(xué)它。大家知道了沒(méi)
第二:C語(yǔ)言能夠讓你深入系統(tǒng)底層,你知道的操作系統(tǒng),哪一個(gè)不是C語(yǔ)言寫的?所有的windows,Unix,Linux,Mac,os/2,沒(méi)有一個(gè)里外的,如果你不懂C語(yǔ)言,怎么可能深入到這些操作系統(tǒng)當(dāng)中去呢?更不要說(shuō)你去寫它們的內(nèi)核程序了。大家知道了沒(méi)
第三:很多新型的語(yǔ)言都是衍生自C語(yǔ)言C++,Java,C#,J#,perl...哪個(gè)不是呢?掌握了C語(yǔ)言,可以說(shuō)你就掌握了很多門語(yǔ)言,經(jīng)過(guò)簡(jiǎn)單的學(xué)習(xí),你就可以用這些新型的語(yǔ)言去開(kāi)發(fā)了,這個(gè)再一次驗(yàn)證了C語(yǔ)言是程序設(shè)計(jì)的重要基礎(chǔ)。還有啊,多說(shuō)一點(diǎn):即使現(xiàn)在招聘程序員,很多考試都是考C語(yǔ)言,你想加入it行業(yè),那么就一定要掌握好C語(yǔ)言。大家知道了沒(méi)
