你知道C語(yǔ)言的優(yōu)缺點(diǎn)嗎?
C語(yǔ)言作為原始的編程語(yǔ)言,那么他有什么優(yōu)缺點(diǎn)嗎?
一、優(yōu)點(diǎn)
1、簡(jiǎn)潔緊湊、靈活方便
C語(yǔ)言一共只有32個(gè)關(guān)鍵字,9種控制語(yǔ)句,程序書寫形式自由,區(qū)分大小寫。把高級(jí)語(yǔ)言的基本結(jié)構(gòu)和語(yǔ)句與低級(jí)語(yǔ)言的實(shí)用性結(jié)合起來(lái)。C 語(yǔ)言可以像匯編語(yǔ)言一樣對(duì)位、字節(jié)和地址進(jìn)行操作,而這三者是計(jì)算機(jī)基本的工作單元。
2、運(yùn)算符豐富
C語(yǔ)言的運(yùn)算符包含的范圍很廣泛,共有34種運(yùn)算符。C語(yǔ)言把括號(hào)、賦值、強(qiáng)制類型轉(zhuǎn)換等都作為運(yùn)算符處理。從而使C語(yǔ)言的運(yùn)算類型極其豐富,表達(dá)式類型多樣化。靈活使用各種運(yùn)算符可以實(shí)現(xiàn)在其它高級(jí)語(yǔ)言中難以實(shí)現(xiàn)的運(yùn)算。
3、數(shù)據(jù)類型豐富
C語(yǔ)言的數(shù)據(jù)類型有:整型、實(shí)型、字符型、數(shù)組類型、指針類型、結(jié)構(gòu)體類型、共用體類型等。能用來(lái)實(shí)現(xiàn)各種復(fù)雜的數(shù)據(jù)結(jié)構(gòu)的運(yùn)算。并引入了指針概念,使程序效率更高。
4、表達(dá)方式靈活實(shí)用
C語(yǔ)言提供多種運(yùn)算符和表達(dá)式值的方法,對(duì)問(wèn)題的表達(dá)可通過(guò)多種途徑獲得,其程序設(shè)計(jì)更主動(dòng)、靈活。它語(yǔ)法限制不太嚴(yán)格,程序設(shè)計(jì)自由度大,如對(duì)整型量與字符型數(shù)據(jù)及邏輯型數(shù)據(jù)可以通用等。
5、允許直接訪問(wèn)物理地址,對(duì)硬件進(jìn)行操作
由于C語(yǔ)言允許直接訪問(wèn)物理地址,可以直接對(duì)硬件進(jìn)行操作,因此它既具有高級(jí)語(yǔ)言的功能,又具有低級(jí)語(yǔ)言的許多功能,能夠像匯編語(yǔ)言一樣對(duì)位(bit)、字節(jié)和地址進(jìn)行操作,而這三者是計(jì)算機(jī)基本的工作單元,可用來(lái)寫系統(tǒng)軟件。
6、生成目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高
C語(yǔ)言描述問(wèn)題比匯編語(yǔ)言迅速,工作量小、可讀性好,易于調(diào)試、修改和移植,而代碼質(zhì)量與匯編語(yǔ)言相當(dāng)。C語(yǔ)言一般只比匯編程序生成的目標(biāo)代碼效率低10%~20%。
7、可移植性好
C語(yǔ)言在不同機(jī)器上的C編譯程序,86%的代碼是公共的,所以C語(yǔ)言的編譯程序便于移植。在一個(gè)環(huán)境上用C語(yǔ)言編寫的程序,不改動(dòng)或稍加改動(dòng),就可移植到另一個(gè)完全不同的環(huán)境中運(yùn)行。
8、表達(dá)力強(qiáng)
C語(yǔ)言有豐富的數(shù)據(jù)結(jié)構(gòu)和運(yùn)算符。包含了各種數(shù)據(jù)結(jié)構(gòu),如整型、數(shù)組類型、指針類型和聯(lián)合類型等,用來(lái)實(shí)現(xiàn)各種數(shù)據(jù)結(jié)構(gòu)的運(yùn)算。C語(yǔ)言的運(yùn)算符有34種,范圍很寬,靈活使用各種運(yùn)算符可以實(shí)現(xiàn)難度極大的運(yùn)算。
C語(yǔ)言能直接訪問(wèn)硬件的物理地址,能進(jìn)行位(bit)操作。兼有高級(jí)語(yǔ)言和低級(jí)語(yǔ)言的許多優(yōu)點(diǎn)。
它既可用來(lái)編寫系統(tǒng)軟件,又可用來(lái)開(kāi)發(fā)應(yīng)用軟件,已成為一種通用程序設(shè)計(jì)語(yǔ)言。
另外C語(yǔ)言具有強(qiáng)大的圖形功能,支持多種顯示器和驅(qū)動(dòng)器。且計(jì)算功能、邏輯判斷功能強(qiáng)大。
二、缺點(diǎn)
1、 C語(yǔ)言的缺點(diǎn)主要表現(xiàn)在數(shù)據(jù)的封裝性上,這一點(diǎn)使得C在數(shù)據(jù)的性上有很大缺陷,這也是C和C++的一大區(qū)別。
2、 C語(yǔ)言的語(yǔ)法限制不太嚴(yán)格,對(duì)變量的類型約束不嚴(yán)格,影響程序的性,對(duì)數(shù)組下標(biāo)越界不作檢查等。從應(yīng)用的角度,C語(yǔ)言比其他高級(jí)語(yǔ)言較難掌握。也就是說(shuō),對(duì)用C語(yǔ)言的人,要求對(duì)程序設(shè)計(jì)更熟練一些。
C語(yǔ)言的運(yùn)算非常靈活,功能十分豐富,運(yùn)算種類遠(yuǎn)多于其它程序設(shè)計(jì)語(yǔ)言。在表達(dá)式方面較其它程序語(yǔ)言更為簡(jiǎn)潔,如自加、自減、逗號(hào)運(yùn)算和三目運(yùn)算使表達(dá)式更為簡(jiǎn)單,但初學(xué)者往往會(huì)覺(jué)的這種表達(dá)式難讀,關(guān)鍵原因就是對(duì)運(yùn)算符和運(yùn)算順序理解不透不全。當(dāng)多種不同運(yùn)算組成一個(gè)運(yùn)算表達(dá)式,即一個(gè)運(yùn)算式中出現(xiàn)多種運(yùn)算符時(shí),運(yùn)算的優(yōu)先順序和結(jié)合規(guī)則顯得十分重要。在學(xué)習(xí)中,對(duì)此合理進(jìn)行分類,找出它們與數(shù)學(xué)中所學(xué)到運(yùn)算之間的不同點(diǎn)之后,記住這些運(yùn)算也就不困難了,有些運(yùn)算符在理解后更會(huì)牢記心中,將來(lái)用起來(lái)得心應(yīng)手,而有些可暫時(shí)放棄不記,等用到時(shí)再記不遲。