c++是在c語(yǔ)言的基礎(chǔ)上演變來(lái)的,那為何c++沒(méi)有代替c語(yǔ)言呢?不同的專(zhuān)業(yè)有的學(xué)c++有的學(xué)c語(yǔ)言,為什么不都學(xué)c++呢?:為何C++沒(méi)有替代C語(yǔ)言?C++和C語(yǔ)言的關(guān)系C++
為何C++沒(méi)有替代C語(yǔ)言?
C++確實(shí)是在C語(yǔ)言的基礎(chǔ)上演變而來(lái)。確切說(shuō),是在原始的C,即K&R C的基礎(chǔ)上演變而來(lái)的。和現(xiàn)代的C99,C11,C18之間是分支關(guān)系。
要明確一點(diǎn):C++并非C語(yǔ)言的繼承者。
從C語(yǔ)言演變出許多其它語(yǔ)言,關(guān)系很近的除了C++,還有Objective C(就是蘋(píng)果大力使用的那種語(yǔ)言)。其它的如D,Go等語(yǔ)言也深受C的影響。
需要說(shuō)明的是:即使C語(yǔ)言需要繼承者,C++并非唯一候選人。
C++是在OOP理念流行時(shí),針對(duì)C不能原生支持OOP的問(wèn)題而推出的改良品種,剛開(kāi)始只是一套預(yù)處理標(biāo)準(zhǔn),后來(lái)則發(fā)展成了另一種語(yǔ)言。
C++并不孤單,Objective C幾乎與其同時(shí)誕生(80年代初期)。
由于性能優(yōu)勢(shì)(相對(duì)于Objective C),C++在競(jìng)爭(zhēng)中壓倒了Objective C,流行了起來(lái)。
C語(yǔ)言是為操作系統(tǒng)級(jí)底層開(kāi)發(fā)而設(shè)計(jì)的。在實(shí)踐中,C語(yǔ)言在這一領(lǐng)域長(zhǎng)期處于統(tǒng)治地位。
相對(duì)于C++,C語(yǔ)言不包含那些針對(duì)大型應(yīng)用級(jí)程序所增加的復(fù)雜性,這也帶來(lái)了一些優(yōu)勢(shì),比如:
其實(shí)C語(yǔ)言從來(lái)就不是功能特別多的一種語(yǔ)言。比C語(yǔ)言更古老的ALGOL系列語(yǔ)言功能和語(yǔ)法特性都遠(yuǎn)超C語(yǔ)言。C語(yǔ)言本身就是精簡(jiǎn)功能的產(chǎn)物。是做減法、而不是做加法的產(chǎn)物。
如果有一種語(yǔ)言能完全替代C,那這種語(yǔ)言一定要在C語(yǔ)言的主場(chǎng),即操作系統(tǒng)級(jí)底層開(kāi)發(fā)領(lǐng)域超越C語(yǔ)言。這種語(yǔ)言一定是減法做得好的語(yǔ)言。C++不是這種語(yǔ)言,至于哪種語(yǔ)言能達(dá)成此目標(biāo)?且讓我們拭目以待吧。
C++發(fā)展歷史簡(jiǎn)單介紹
C語(yǔ)言之所以要起名為“C”,是因?yàn)樗侵饕獏⒖寄莻(gè)時(shí)候的一門(mén)叫B的語(yǔ)言,它的設(shè)計(jì)者認(rèn)為C語(yǔ)言是B語(yǔ)言的進(jìn)步,所以就起名為C語(yǔ)言;但是B語(yǔ)言并不是因?yàn)橹斑有個(gè)A語(yǔ)言,而是B語(yǔ)言的作者為了紀(jì)念他的妻子,他的妻子名字的第一個(gè)字母是B; 當(dāng)C語(yǔ)言發(fā)展到頂峰的時(shí)刻,出現(xiàn)了一個(gè)版本叫C with Class,那就是C++最早的版本,在C語(yǔ)言中增加class關(guān)鍵字和類(lèi),那個(gè)時(shí)候有很多版本的C都希望在C語(yǔ)言中增加類(lèi)的概念;后來(lái)C標(biāo)準(zhǔn)委員會(huì)決定為這個(gè)版本的C起個(gè)新的名字,那個(gè)時(shí)候征集了很多種名字,最后采納了其中一個(gè)人的意見(jiàn),以C語(yǔ)言中的++運(yùn)算符來(lái)體現(xiàn)它是C語(yǔ)言的進(jìn)步,所以就叫C++,也成立了C++標(biāo)準(zhǔn)委員會(huì);
美國(guó)AT&T貝爾實(shí)驗(yàn)室的本賈尼·斯特勞斯特盧普(Bjarne Stroustrup)博士在20世紀(jì)80年代初期發(fā)明并實(shí)現(xiàn)了C++(最初這種語(yǔ)言被稱(chēng)作“C with Classes”)。一開(kāi)始C++是作為C語(yǔ)言的增強(qiáng)版出現(xiàn)的,從給C語(yǔ)言增加類(lèi)開(kāi)始,不斷的增加新特性。虛函數(shù)(virtual function)、運(yùn)算符重載(operator overloading)、多重繼承(multiple inheritance)、模板(template)、異常(exception)、RTTI、命名空間(name space)逐漸被加入標(biāo)準(zhǔn)。1998年國(guó)際標(biāo)準(zhǔn)組織(ISO)頒布了C++程序設(shè)計(jì)語(yǔ)言的國(guó)際標(biāo)準(zhǔn)ISO/IEC 1488-1998。C++是具有國(guó)際標(biāo)準(zhǔn)的編程語(yǔ)言,通常稱(chēng)作ANSI/ISO C++。1998年是C++標(biāo)準(zhǔn)委員會(huì)成立的第一年,以后每5年視實(shí)際需要更新一次標(biāo)準(zhǔn),下一次標(biāo)準(zhǔn)更新將是在2009年,目前我們一般稱(chēng)該標(biāo)準(zhǔn)C++0x。遺憾的是,由于C++語(yǔ)言過(guò)于復(fù)雜,以及他經(jīng)歷了長(zhǎng)年的演變,直到現(xiàn)在(2009年)只有Visual C++ 2010 CTP開(kāi)發(fā)環(huán)境的編譯器完全符合這個(gè)標(biāo)準(zhǔn)。
另外,就目前學(xué)習(xí)C++而言,可以認(rèn)為他是一門(mén)獨(dú)立的語(yǔ)言;他并不依賴(lài)C語(yǔ)言,我們可以完全不學(xué)C語(yǔ)言,而直接學(xué)習(xí)C++。根據(jù)《C++編程思想》(Thinking in C++)一書(shū)所評(píng)述的,C++與C的效率往往相差在正負(fù)5%之間。所以有人認(rèn)為在大多數(shù)場(chǎng)合C++ 完全可以取代C語(yǔ)言(然而我們?cè)趩纹瑱C(jī)等需要謹(jǐn)慎利用空間、直接操作硬件的地方還是要使用C語(yǔ)言)。
你好,我是比特幣二師兄。
1、首先,大學(xué)肯定教的都是大眾性,即普遍程度很高的東西,C語(yǔ)言相對(duì)C++而言,就比較普遍,因?yàn)榇蠹一旧隙紩?huì)一些C語(yǔ)言相關(guān)的基礎(chǔ)。
2、大學(xué)只是給你打了一個(gè)基礎(chǔ),為了讓你在進(jìn)入社會(huì)公司之后,有一個(gè)邏輯上的思維,好進(jìn)行培訓(xùn),以及打磨,適合本公司的研發(fā)方向的人才。
3、C++是面向?qū)ο笏季S的,一般而言,初學(xué)者學(xué)習(xí)時(shí),對(duì)于面向?qū)ο蠖赃是比較難理解的,因此大部分學(xué)校都會(huì)教C語(yǔ)言,而不是C++。
4、C++語(yǔ)言來(lái)說(shuō),相對(duì)復(fù)雜一些,類(lèi)的繼承,封裝、多態(tài)等都是比較復(fù)雜的概念,這些對(duì)初學(xué)者來(lái)說(shuō)并不友好。
5、相較于C++語(yǔ)言而言,C語(yǔ)言具有更強(qiáng)的靈活性,更快的運(yùn)行速度,并且適用于底層編程,比如嵌入式開(kāi)發(fā)等等。像Linux系統(tǒng),基本上都是純C語(yǔ)言開(kāi)發(fā)完成的。
對(duì)于編程功底強(qiáng)大的人,C語(yǔ)言就是其首選的編程語(yǔ)言。
各有各的用處。不能說(shuō)因?yàn)橛辛??,??就沒(méi)用了。電燈蠟燭各有所愛(ài)。
比如嵌入開(kāi)發(fā),C語(yǔ)言就輕便靈活。
另外,Cpp也不是C基礎(chǔ)上發(fā)展起來(lái)的,只是部分語(yǔ)法延續(xù),它們是兩種語(yǔ)言體系。
雖然說(shuō)C++是在C語(yǔ)言的基礎(chǔ)上演變而來(lái)的,C++是面向?qū)ο蟮,C語(yǔ)言是面向過(guò)程的,每個(gè)語(yǔ)言都有各自適用的場(chǎng)景,可以這么說(shuō),無(wú)論用什么語(yǔ)言來(lái)開(kāi)發(fā),都只是我們實(shí)現(xiàn)功能的一個(gè)工具而已,關(guān)鍵是掌握他,并且學(xué)精了;
c++更多的是一些游戲,服務(wù)器端的開(kāi)發(fā),C語(yǔ)言呢更多的是底層操作系統(tǒng)的開(kāi)發(fā);
以前學(xué)習(xí)C語(yǔ)言的時(shí)候看的是如鵬網(wǎng)的視頻教程——《C語(yǔ)言也能干大事》系列,蠻有意思的,通過(guò)開(kāi)發(fā)超級(jí)瑪麗,飛機(jī)大戰(zhàn)等經(jīng)典小游戲,開(kāi)發(fā)網(wǎng)站的方式來(lái)講解C語(yǔ)言的知識(shí)點(diǎn),挺好玩的,沒(méi)想到C語(yǔ)言還可以這么學(xué),沒(méi)想到C語(yǔ)言還可以寫(xiě)出這么漂亮的界面程序,蠻有成就感的,具體的可以到如鵬網(wǎng)官網(wǎng)上去了解一下;
C++ 是 C 的超集,C只有少量功能 C++是 不支持。C一般都用于嵌入式還有一些精簡(jiǎn)的庫(kù),而C++一般都用來(lái)寫(xiě)大型的項(xiàng)目,從底層到用戶界面,它都可以寫(xiě)。
其實(shí)并不是取代和不取代的問(wèn)題,因?yàn)檫@兩種語(yǔ)言目前都有適用的地方和平臺(tái)。
用法也是因人而異,一般來(lái)說(shuō)你會(huì)C++那么肯定也就會(huì)C了,其實(shí)C++的很多語(yǔ)法特性基本是用不到的,但是你如果學(xué)會(huì)了,會(huì)覺(jué)得沒(méi)有什么語(yǔ)言可以難得倒你。
現(xiàn)在最熱門(mén)的rust和python,這兩個(gè)將被用來(lái)構(gòu)建下一層次的計(jì)算機(jī)編程哦。
1、以編程語(yǔ)言發(fā)展歷程上講,是先有C語(yǔ)言,后才有C++語(yǔ)言;贑語(yǔ)言的語(yǔ)法,最大的好處是讓廣大C語(yǔ)言程序員過(guò)渡到C++語(yǔ)言。這點(diǎn)在當(dāng)時(shí)是取得很大成功的。實(shí)例是當(dāng)時(shí)也出現(xiàn)過(guò)多種面向?qū)ο蟮木幊陶Z(yǔ)言,但現(xiàn)在大家熟悉的只有C++。
2、從使用C++語(yǔ)言的角度講,精通C++語(yǔ)言的前提是精通C語(yǔ)言。C++語(yǔ)言的強(qiáng)大之處是進(jìn)行大型程序的構(gòu)架,即框架類(lèi)與類(lèi)之間的關(guān)系,對(duì)象與對(duì)象之間的關(guān)系。但具體落實(shí)到功能的實(shí)現(xiàn),還是體現(xiàn)在C語(yǔ)言上,即一個(gè)一個(gè)函數(shù)的實(shí)現(xiàn)細(xì)節(jié)上。因此,說(shuō)精通C++而不會(huì)C語(yǔ)言的人,是從來(lái)沒(méi)有真正做的實(shí)際項(xiàng)目的人吹吹而以。
3、C++語(yǔ)言比Java和C#語(yǔ)言難學(xué)的原因在于:學(xué)習(xí)C++語(yǔ)言,要盡可能的了解C++編譯器相關(guān)的知識(shí)。因?yàn)樵诋?dāng)時(shí)的硬件條件下,為了盡可能的提高程序的運(yùn)行效率,將一些本來(lái)可以放在運(yùn)行時(shí)解決的功能,全部放在編譯過(guò)程中解決了。因此,在了解編程語(yǔ)言本身的情況下,要多了解C++編程器相關(guān)的知識(shí),才能更好地理解C++編程語(yǔ)言。
同學(xué),作為一個(gè)工科畢業(yè)生,我在學(xué)習(xí)C語(yǔ)言的時(shí)候就感覺(jué)要比C++好學(xué)一點(diǎn),雖然C++=C+1,C++是在C基礎(chǔ)之上發(fā)展而來(lái),增加許多C沒(méi)有的語(yǔ)句,但絕對(duì)不是簡(jiǎn)單的堆疊,我覺(jué)得應(yīng)該是分道揚(yáng)鑣,自立一派了,應(yīng)運(yùn)在別的方向了。打個(gè)比方HUAWEI mate 30 和HUAWEI mate 30 Pro,是不是有了mate 30 Pro就不賣(mài)mate 30 了,顯然不是嘛,mate 30還有很大的市場(chǎng)份額,我也會(huì)買(mǎi)。所以說(shuō):
1、C語(yǔ)言是面向過(guò)程的,而C++是面向?qū)ο蟮摹?/p>
2、C語(yǔ)言有標(biāo)準(zhǔn)的函數(shù)庫(kù),它們松散的,只是把功能相同的函數(shù)放在一個(gè)頭文件中;而C++對(duì)于大多數(shù)的函數(shù)都是有集成的很緊密,特別是C語(yǔ)言中沒(méi)有的C++中的API是對(duì)Window系統(tǒng)的大多數(shù)API有機(jī)的組合,是一個(gè)集體。
3、C語(yǔ)言中的圖形處理函數(shù)基本上不能用在C++中的。C語(yǔ)言標(biāo)準(zhǔn)中不包括圖形處理。
呃,C語(yǔ)言可以應(yīng)運(yùn)在單片機(jī)、Linux底層編程,C++不能,我知道的就這么多了,所以不能取代,承讓承讓?zhuān)x謝。
c++是完全包含c的,談什么替換。c++語(yǔ)法細(xì)節(jié)太多,上手較難。如果只用c語(yǔ)法寫(xiě)c++代碼,那效率基本是一致的。但沒(méi)人這么干,畢竟c++最重要的是面向?qū)ο蠛湍0寰幊?/p>
c是面向過(guò)程
c++是面向?qū)ο?/p>
華裔女賭王就此沒(méi)落,生前讓所有 濃情端午粽飄香,青浦邀你“云體 上海:“云端”展現(xiàn)端午節(jié)文化內(nèi) “甜咸大戰(zhàn)”!明星藝人們喜歡什 如何做一個(gè)男人喜歡的情人(如何 當(dāng)你和你同時(shí)出現(xiàn)在同一個(gè)場(chǎng)景中 如何在昏暗的光線下設(shè)置快門(mén)速度 教育在生活中的價(jià)值是什么? 世上做壞事的人死后會(huì)面臨什么因 拜登就任總統(tǒng)后的第一步是什么? 同意/不同意:人生最重要的目標(biāo) 二戰(zhàn)后,德國(guó)在調(diào)和分歧方面做得 亞伯·林肯恨白人嗎? 一個(gè)編輯能把你的故事毀得有多嚴(yán) 現(xiàn)在的iPhone6還能堅(jiān)持再用一年 曹操為什么不殺司馬懿? 現(xiàn)在買(mǎi)房是不是最便宜的時(shí)候,現(xiàn) 我身邊的農(nóng)業(yè)銀行營(yíng)業(yè)廳關(guān)了,AT 歐洲媒體評(píng)選CBA最有實(shí)力球員, 榮耀play的6+128和榮耀8X的6+128 螞蟻集團(tuán)是科技公司還是金融公司 請(qǐng)問(wèn)機(jī)友華為mate30P與華為mate3 聽(tīng)說(shuō)老詹修剪一次指甲需要5小時(shí) 為什么說(shuō)寶寶“一月睡二月哭三月 戴笠人稱(chēng)戴老板,這個(gè)是怎么叫出 沒(méi)有工作能一次性補(bǔ)繳社保么? 我想知道定向師范生和免費(fèi)師范生 肺癌引起的咳嗽是怎樣的呢? 5000mAh電池的5G手機(jī)推薦嗎?要 恒大亞冠表現(xiàn)“差強(qiáng)人意”,你覺(jué)