C語言是面向過程的,而C++是面向?qū)ο蟮?/p>
這些是C/C++能做的
服務(wù)器開發(fā)工程師、人工智能、云計(jì)算工程師、信息安全(黑客反黑客)、大數(shù)據(jù) 、數(shù)據(jù)平臺(tái)、嵌入式工程師、流媒體服務(wù)器、數(shù)據(jù)控解、圖像處理、音頻視頻開發(fā)工程師、游戲服務(wù)器、分布式系統(tǒng)、游戲輔助等
C語言的發(fā)展歷史:
20世紀(jì)70年代初,貝爾實(shí)驗(yàn)室的Dennis Richie 等人在B語言基礎(chǔ)上開發(fā)出C語言,最初是作為UNIX的開發(fā)語言;
20世紀(jì)70年代末,隨著微型計(jì)算機(jī)的發(fā)展,C語言開始移植到非UNIX環(huán)境中,并逐步成為獨(dú)立的程序設(shè)計(jì)語言;
在1978年,Kernighan和里奇的《C程序設(shè)計(jì)語言》第一版出版,在這本書中,C語言通常被表述成“K&R C”;
1988年ANSI(美國(guó)國(guó)家標(biāo)準(zhǔn)協(xié)會(huì))對(duì)C語言進(jìn)行了標(biāo)準(zhǔn)化,產(chǎn)生了“ANSI C”;
在ANSI標(biāo)準(zhǔn)化自己的過程中,一些新的特征被加了進(jìn)去。ANSI也標(biāo)準(zhǔn)了函數(shù)庫。ANSI C標(biāo)準(zhǔn)被ISO(國(guó)際標(biāo)準(zhǔn)化組織)采納成為ISO 9899。ISO的第一個(gè)版本文件在1990年出版,誕生了“ISO C”;
標(biāo)準(zhǔn)在90年代才經(jīng)歷了改進(jìn),這就是ISO9899:1999(1999年出版)。這個(gè)版本就是通常提及的C99。它被ANSI于2000年三月采用。
C語言的特點(diǎn):
小編推薦一個(gè)學(xué)C語言/C++的學(xué)習(xí)裙【 二六三,六八八,二七六 】,無論你是大牛還是小白,是想轉(zhuǎn)行還是想入行都可以來了解一起進(jìn)步一起學(xué)習(xí)!裙內(nèi)有開發(fā)工具,很多干貨和技術(shù)資料分享!
C是中級(jí)語言。它把高級(jí)語言的基本結(jié)構(gòu)和語句與低級(jí)語言的實(shí)用性結(jié)合起來。C 語言可以像匯編語言一樣對(duì)位、字節(jié)和地址進(jìn)行操作, 而這三者是計(jì)算機(jī)最基本的工作單元;
C是結(jié)構(gòu)式語言。結(jié)構(gòu)式語言的顯著特點(diǎn)是代碼及數(shù)據(jù)的分割化,即程序的各個(gè)部分除了必要的信息交流外彼此獨(dú)立。這種結(jié)構(gòu)化方式可使程序?qū)哟吻逦?,便于使用、維護(hù)以及調(diào)試。C 語言是以函數(shù)形式提供給用戶的,這些函數(shù)可方便的調(diào)用,并具有多種循環(huán)、條件語句控制程序流向,從而使程序完全結(jié)構(gòu)化;
C語言功能齊全。具有各種各樣的數(shù)據(jù)類型,并引入了指針概念,可使程序效率更高。
C語言具有繪圖能力強(qiáng),可移植性,并具備很強(qiáng)的數(shù)據(jù)處理能力,因此適于編寫系統(tǒng)軟件、三維、二維圖形和動(dòng)畫,支持多種顯示器和驅(qū)動(dòng)器;
C語言適用范圍大。適合于多種操作系統(tǒng),如Windows、DOS、UNIX等等;也適用于多種機(jī)型。
C語言的優(yōu)點(diǎn):
既有高級(jí)語言的結(jié)構(gòu)和編程環(huán)境,又有類似于低級(jí)語言(如匯編語言)的系統(tǒng)資源操縱能力。目標(biāo)代碼的執(zhí)行效率只比匯編低10~20% ,比其他高級(jí)語言高,適合解決有實(shí)時(shí)要求的問題;
有豐富的運(yùn)算符、數(shù)據(jù)類型和表達(dá)式,對(duì)程序設(shè)計(jì)有良好的適應(yīng)性;
支持以函數(shù)為基礎(chǔ)結(jié)構(gòu)化程序設(shè)計(jì)、多文件構(gòu)成及文件獨(dú)立編譯,適合大型復(fù)雜程序設(shè)計(jì);
語言簡(jiǎn)潔、緊湊,使用方便、靈活,書寫形式自~由;
代碼及可執(zhí)行程序的可移植性好。
C語言的缺點(diǎn):
C語言它的最大的缺點(diǎn)就是,如果你的項(xiàng)目很復(fù)雜,大量的開發(fā)人員互相之間需要更新大段代碼時(shí),C語言可能會(huì)使事情變得異常麻煩。因?yàn)镃是在面向?qū)ο蠓椒餍兄伴_發(fā)的,這大大降低了C語言復(fù)雜設(shè)計(jì)的可能性。(不要以為C語言做不了大項(xiàng)目 - -世界上有太多的經(jīng)典都是用C語言完成的,如果你想了解C語言的能力,不妨看看QUAKE3的源代碼——很敬佩ID的無私,這份代碼完全是公開的,任何人都可以使用它與修改它。);
輸入輸出相對(duì)很多語言都較為復(fù)雜。對(duì)于字符串的處理,只能通過字符數(shù)組實(shí)現(xiàn)。繪圖操作較為復(fù)雜;
C語言的缺點(diǎn)主要表現(xiàn)在數(shù)據(jù)的封裝性上,這一點(diǎn)使得C在數(shù)據(jù)的安全性上有很大缺陷,這也是C和C++的一大區(qū)別;
C語言的語法限制不太嚴(yán)格,對(duì)變量的類型約束不嚴(yán)格,影響程序的安全性,對(duì)數(shù)組下標(biāo)越界不作檢查等。從應(yīng)用的角度,C語言比其他高級(jí)語言較難掌握;
指針是C語言的一大特色,可以說是C語言優(yōu)于其它高級(jí)語言的一個(gè)重要原因。就是因?yàn)樗兄羔?,可以直接進(jìn)行靠近硬件的操作,但是C的指針操作也給它帶來了很多不安全的因素。C++在這方面做了很好的改進(jìn),在保留了指針操作的同時(shí)又增強(qiáng)了安全性。Java取消了指針操作,提高了安全性;
類型檢查機(jī)制相對(duì)較弱、缺少支持代碼重用的語言結(jié)構(gòu)。