C語言是面向過程的翻翩,而C++是面向?qū)ο蟮?/p>
這些是C/C++能做的
服務(wù)器開發(fā)工程師都许、人工智能、云計(jì)算工程師嫂冻、信息安全(黑客反黑客)胶征、大數(shù)據(jù) 、數(shù)據(jù)平臺桨仿、嵌入式工程師睛低、流媒體服務(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(美國國家標(biāo)準(zhǔn)協(xié)會)對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(國際標(biāo)準(zhǔn)化組織)采納成為ISO 9899。ISO的第一個版本文件在1990年出版亡脸,誕生了“ISO C”押搪;
標(biāo)準(zhǔn)在90年代才經(jīng)歷了改進(jìn),這就是ISO9899:1999(1999年出版)浅碾。這個版本就是通常提及的C99大州。它被ANSI于2000年三月采用桩撮。
C語言的特點(diǎn):
小編推薦一個學(xué)C語言/C++的學(xué)習(xí)裙【 二六三土榴,六八八,二七六 】擎浴,無論你是大牛還是小白滥朱,是想轉(zhuǎn)行還是想入行都可以來了解一起進(jìn)步一起學(xué)習(xí)根暑!裙內(nèi)有開發(fā)工具,很多干貨和技術(shù)資料分享徙邻!
C是中級語言排嫌。它把高級語言的基本結(jié)構(gòu)和語句與低級語言的實(shí)用性結(jié)合起來。C 語言可以像匯編語言一樣對位缰犁、字節(jié)和地址進(jìn)行操作淳地, 而這三者是計(jì)算機(jī)最基本的工作單元怖糊;
C是結(jié)構(gòu)式語言。結(jié)構(gòu)式語言的顯著特點(diǎn)是代碼及數(shù)據(jù)的分割化颇象,即程序的各個部分除了必要的信息交流外彼此獨(dú)立蓬抄。這種結(jié)構(gòu)化方式可使程序?qū)哟吻逦阌谑褂煤坏健⒕S護(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)軟件、三維初斑、二維圖形和動畫辛润,支持多種顯示器和驅(qū)動器;
C語言適用范圍大见秤。適合于多種操作系統(tǒng)砂竖,如Windows、DOS鹃答、UNIX等等乎澄;也適用于多種機(jī)型。
C語言的優(yōu)點(diǎn):
既有高級語言的結(jié)構(gòu)和編程環(huán)境测摔,又有類似于低級語言(如匯編語言)的系統(tǒng)資源操縱能力置济。目標(biāo)代碼的執(zhí)行效率只比匯編低10~20% ,比其他高級語言高避咆,適合解決有實(shí)時要求的問題舟肉;
有豐富的運(yùn)算符修噪、數(shù)據(jù)類型和表達(dá)式查库,對程序設(shè)計(jì)有良好的適應(yīng)性;
支持以函數(shù)為基礎(chǔ)結(jié)構(gòu)化程序設(shè)計(jì)黄琼、多文件構(gòu)成及文件獨(dú)立編譯樊销,適合大型復(fù)雜程序設(shè)計(jì)整慎;
語言簡潔、緊湊围苫,使用方便裤园、靈活,書寫形式自~由剂府;
代碼及可執(zhí)行程序的可移植性好拧揽。
C語言的缺點(diǎn):
C語言它的最大的缺點(diǎn)就是,如果你的項(xiàng)目很復(fù)雜腺占,大量的開發(fā)人員互相之間需要更新大段代碼時淤袜,C語言可能會使事情變得異常麻煩。因?yàn)镃是在面向?qū)ο蠓椒餍兄伴_發(fā)的衰伯,這大大降低了C語言復(fù)雜設(shè)計(jì)的可能性铡羡。(不要以為C語言做不了大項(xiàng)目 - -世界上有太多的經(jīng)典都是用C語言完成的,如果你想了解C語言的能力意鲸,不妨看看QUAKE3的源代碼——很敬佩ID的無私烦周,這份代碼完全是公開的,任何人都可以使用它與修改它怎顾。)读慎;
輸入輸出相對很多語言都較為復(fù)雜。對于字符串的處理槐雾,只能通過字符數(shù)組實(shí)現(xiàn)贪壳。繪圖操作較為復(fù)雜;
C語言的缺點(diǎn)主要表現(xiàn)在數(shù)據(jù)的封裝性上蚜退,這一點(diǎn)使得C在數(shù)據(jù)的安全性上有很大缺陷闰靴,這也是C和C++的一大區(qū)別;
C語言的語法限制不太嚴(yán)格钻注,對變量的類型約束不嚴(yán)格蚂且,影響程序的安全性,對數(shù)組下標(biāo)越界不作檢查等幅恋。從應(yīng)用的角度杏死,C語言比其他高級語言較難掌握;
指針是C語言的一大特色捆交,可以說是C語言優(yōu)于其它高級語言的一個重要原因淑翼。就是因?yàn)樗兄羔槪梢灾苯舆M(jìn)行靠近硬件的操作品追,但是C的指針操作也給它帶來了很多不安全的因素玄括。C++在這方面做了很好的改進(jìn),在保留了指針操作的同時又增強(qiáng)了安全性肉瓦。Java取消了指針操作遭京,提高了安全性胃惜;
類型檢查機(jī)制相對較弱、缺少支持代碼重用的語言結(jié)構(gòu)哪雕。