C語言和C++的區(qū)別 C語言和C++語言的區(qū)別是什么?
C語言與C++的區(qū)別有很多,下面是簡要概述:
1、面向不同
C語言是面向過程的,
C++是面向?qū)ο蟮摹?/p>
函數(shù)庫
C語言有標(biāo)準(zhǔn)的函數(shù)庫,它們松散的,只是把功能相同的函數(shù)放在一個頭文件中;
C++對于大多數(shù)的函數(shù)都是有集成的很緊密,特別是C語言中沒有的C++中的API是對Window系統(tǒng)的大多數(shù)API有機的組合,是一個集體。但你也可能單獨調(diào)用API。
3、結(jié)構(gòu)概念不同
C言中結(jié)構(gòu)只有成員變量,而沒成員方法,C語而在但是在C語言中結(jié)構(gòu)的成員是公共的,什么想訪問它的都可以訪問;
C++中結(jié)構(gòu)中,它可以有自己的成員變量和成員函數(shù)。
4、寫作數(shù)量不同
C語言可以寫很多方面的程序,
C++可以寫得更多更好,C++可以寫基于DOS的程序,寫DLL,寫控件,寫系統(tǒng)。
5、組織不同
C語言對程序的文件的組織是松散的,幾乎是全要程序處理;
C++對文件的組織是以工程,各文件分類明確。
C與C++的區(qū)別:
1. C是一個結(jié)構(gòu)化語言,它的重點在于算法和數(shù)據(jù)結(jié)構(gòu)。C程序的設(shè)計首要考慮的是 如何通過一個過程,對輸入(或環(huán)境條件)進行運算處理得到輸出(或?qū)崿F(xiàn)過程 (事務(wù))控制)。
2. 對于C++,首要考慮的是如何構(gòu)造一個對象模型,讓這個模型能夠契合與之對應(yīng) 的問題域,這樣就可以通過獲取對象的狀態(tài)信息得到輸出或?qū)崿F(xiàn)過程(事務(wù))控 制。
所以C與C++的最大區(qū)別在于它們的用于解決問題的思想方法不一樣。之所以說C++比C更先進,是因為“ 設(shè)計這個概念已經(jīng)被融入到C++之中 ”,而就語言本身而言,在C中更多的是算法的概念。那么是不是C就不重要了,錯!算法是程序設(shè)計的基礎(chǔ),好的設(shè)計如果沒有好的算法,一樣不行。而且,“C加上好的設(shè)計”也能寫出非常好的東西。
對語言本身而言,C是C++的子集,那么是什么樣的一個子集?從上文可以看出, C實現(xiàn)了C++中過程化控制及其它相關(guān)功能,而在C++中的C(我稱它為“C+”),相對于原來的C還有所加強,引入了重載、內(nèi)聯(lián)函數(shù)、異常處理等等玩藝兒,C++更是拓展了面向?qū)ο笤O(shè)計的內(nèi)容,如類、繼承、虛函數(shù)、模板和包容器類等等。
C++在歷史上曾經(jīng)是C的擴展,不過現(xiàn)在兩個都各自有發(fā)展,所以現(xiàn)在的C++與現(xiàn)在的C沒有誰是誰的擴展的關(guān)系。
現(xiàn)在有人說C和C++是大熊貓和小熊貓的關(guān)系,也就是說只是名字相近——這多少有欠公允。不過C和C++的確是有巨大區(qū)別的,C語言簡單有效,但處理大問題就很麻煩像把左輪手槍;而C++則簡直是一輛坦克,功能齊備,但更肥大——無非都是兵器而已。至于說學(xué)習(xí)上C是C++的基礎(chǔ),倒是一大誤區(qū),槍械和火炮長得可能有點像,甚至也有點淵源,但終究全不是一回事。
先學(xué)C,后學(xué)C++有好處也有壞處,應(yīng)該說至今仍有爭論。
我的看法是,如果是做應(yīng)用軟件一類的編程,就不應(yīng)該先學(xué)C,而且應(yīng)該在初學(xué)時少接觸C的舊式編程風(fēng)格,而是把大部分精力放在C++的標(biāo)準(zhǔn)庫(包括基于STL的編程,這方面國內(nèi)一般的教材最欠缺),以及基于對象和面向?qū)ο蟮木幊躺稀_@是因為C++的這些應(yīng)用從編程方式到代碼風(fēng)格都與C語言大相徑庭,初學(xué)養(yǎng)成C式的編程習(xí)慣就很改掉,反而限制對類和泛型編程的理解。
如果是想接觸比較底層的東西,以后做軟件庫開發(fā)、系統(tǒng)編程之類,那么學(xué)C語言,尤其是一些像宏、指針、內(nèi)存管理等知識就很有好處(這些東西在前一種應(yīng)用中卻都要盡量避免)。但先學(xué)C的好處并不明顯,因為直接學(xué)C++同樣可以學(xué)到這些東西,只要改變一點學(xué)習(xí)側(cè)重就可以了。
上面是從應(yīng)用方向角度說的。至于學(xué)習(xí)的困難程度,直接學(xué)C++并不難,而且在一些方面更簡單一些;只不過C++的內(nèi)容比C多罷了。C++的創(chuàng)始人Stroustrup就大力提倡不要學(xué)C,并列舉了先學(xué)C的種種壞處。因此我的意見也是不學(xué)C,直接學(xué)C++。
現(xiàn)在國內(nèi)講C++的書一般是先講與C相似的一塊,后講C++獨有的內(nèi)容,沒有融合在一起,看似C成了“基礎(chǔ)”。其實這種講法主要是由于國內(nèi)編教材的教師多是學(xué)C語言(甚至機器碼、匯編)出身的,可能到很晚才接觸C++,因而有思維定勢。其實看國外許多教材,一入門就強調(diào)類的概念,入門不多久就大量用到STL,過程式的語法與這些一塊講,同樣也很直觀(對象的概念實際上比函數(shù)的概念直觀得多),可以學(xué)得通。
1、C是一個結(jié)構(gòu)化語言,它的重點在于算法和數(shù)據(jù)結(jié)構(gòu)。C程序的設(shè)計首要考慮的是如何通過一個過程,對輸入(或環(huán)境條件)進行運算處理得到輸出(或?qū)崿F(xiàn)過程(事務(wù))控制)。
2、C++,首要考慮的是如何構(gòu)造一個對象模型,讓這個模型能夠契合與之對應(yīng)的問題域,這樣就可以通過獲取對象的狀態(tài)信息得到輸出或?qū)崿F(xiàn)過程(事務(wù))控制。 所以C與C++的最大區(qū)別在于它們的用于解決問題的思想方法不一樣。之所以說C++比C更先進,是因為“ 設(shè)計這個概念已經(jīng)被融入到C++之中 ”。
這兩個符號是關(guān)系運算符,它們的含義是不同的。
==的名稱等于,例如a==b,如果a等于b,則返回true,否則返回false。
!=的名稱不等于,例如,a!=b,如果a不等于b,則返回true,否則返回false。
關(guān)系運算符的值只能是0或1。當(dāng)關(guān)系運算符的值為true時,結(jié)果值為1。當(dāng)關(guān)系運算符的值為false時,結(jié)果值為0。
擴展資料:
其他關(guān)系運算符
“<”小于,例如a<b,如果a小于b,則函數(shù)返回true;否則返回false。
“<=”小于或等于,例如a<=b,如果a小于或等于b,則函數(shù)返回true;否則返回false。
“>的名稱大于,例如a>b。如果a大于b,則函數(shù)返回true;否則返回false。
“>=”名稱大于或等于,例如a>=b,如果a大于或等于b,則可以返回true;否則返回false。
上面4中關(guān)系運算符的第一級是相同的,==和!=運算符具有相同的級別,前四個級別高于后兩個級別。關(guān)系運算符優(yōu)先于算術(shù)運算符。關(guān)系運算符優(yōu)先于賦值運算符。
參考資料來源:百度百科-關(guān)系運算符
C++語言全稱:The C++ Programming Language,它是是在C語言的基礎(chǔ)上開發(fā)的一種通用編程語言,應(yīng)用廣泛。C++支持多種編程范式 :面向?qū)ο缶幊獭⒎盒途幊毯瓦^程化編程。最新正式標(biāo)準(zhǔn)C++14于2014年8月18日公布。 其編程領(lǐng)域眾廣,常用于系統(tǒng)開發(fā),引擎開發(fā)等應(yīng)用領(lǐng)域,是至今為止最受廣大受用的最強大編程語言之一,支持類:類、封裝、重載等!C++主要用于大型的應(yīng)用程序開發(fā),比如游戲開發(fā)。C++實際上是對C語言的擴展,是C語言的超集,比如下面的代碼:
class test{ }; //c++中的自定義類
int a; //c語言定義 int變量a
int b = 0; //定義int變量b并初始化為0
int c = b; //定義int變量c并用變量b的值初始化
int d; //定義變量d
d = c; //把變量c的值賦值給變量d
在c++中將c語言的這些基本的操作進行了擴展,使C語言擁有更強大的功能,同時也是C++的超級特性。
test a; //定義test的默認(rèn)構(gòu)造函數(shù)
test b = 0; //調(diào)用test帶有參數(shù)的構(gòu)造函數(shù);
test c = b; //調(diào)用 test的復(fù)制構(gòu)造函數(shù)
test d;
d = c; //調(diào)用 test的賦值運算符重載符。
C語言全稱:The C Programming Language,它是一門通用計算機編程語言,它是在BCPL語言上發(fā)展而來的,BCPL的作稱是Basic Combined Programming Language,因為C語言在它的基礎(chǔ)上開發(fā)出來的,所以很多C程序員喜歡將BCPL解釋成(Before C Progamming Language)。C語言應(yīng)用廣泛。它的設(shè)計目標(biāo)是提供一種能以簡易的方式編譯、處理低級存儲器、產(chǎn)生少量的機器碼以及不需要任何運行環(huán)境支持便能運行的編程語言。因此C語言在針對硬件編程以及系統(tǒng)底層開發(fā)中得到大量的應(yīng)用,現(xiàn)在大部用戶使用的Windows系統(tǒng)以及Linux系統(tǒng)都是用C語言開發(fā)出來的。
c語言和c#語言區(qū)別
在語法和運行機制上,c#與c語言有著明顯區(qū)別。c語言側(cè)重于過程編程,而c#更加強調(diào)面向?qū)ο蟮脑O(shè)計。c語言在處理低級存儲器時更為靈活,而c#則通過引用類型簡化了對象的處理。c語言編譯生成的可執(zhí)行文件直接在真實CPU上運行,而c#則通過虛擬機執(zhí)行,使得開發(fā)人員無需考慮特定硬件架構(gòu)的差異。c語言在開發(fā)性能...
C,C+和C++它們有什么區(qū)別
只有C語言和C++語言,沒有C+語言。1、出現(xiàn)時間不同 C++是C的超集,也可以說C是C++的子集,因為C先出現(xiàn)。按常理說,C++編譯器能夠編譯任何C程序,但是C和C++還是有一些小差別。例如C++增加了C不具有的關(guān)鍵字。這些關(guān)鍵字能作為函數(shù)和變量的標(biāo)識符在C程序中使用,盡管C++包含了所有的C,但顯然沒有...
C語言和C++語言的區(qū)別是什么?
兩者區(qū)別有很多:1、不一樣的程序思維,C語言是面向過程的,而C++是面向?qū)ο蟮摹?、C語言的數(shù)據(jù)庫是松散的,只是把功能相同的函數(shù)放在一個頭文件中;而C++對于大多數(shù)的函數(shù)都很緊密,特別是C語言中沒有的C++中的API是對Window系統(tǒng)的大多數(shù)API有機的組合,是一個集體。3、C語言中結(jié)構(gòu)只有成員變量,而...
編程語言C,C++,C#,JAVA,PHP,NET等這些有什么區(qū)別呢?
4.java是一個可以運行在各種平臺上的開發(fā)語言,其是一個90%以上純度的OPP語言,要比c++和c#的OPP特性要多,其語法和c的很想,如果會c的語,可以不用學(xué)java就可以看明白。其很多功能都可以很簡單的使用;5.PHP只是一個網(wǎng)頁開發(fā)語言,和asp,asp.net,jsp等是一類的;5..net是的微軟推出的一樣新...
c語言和c++的區(qū)別和聯(lián)系是什么?
一、主體不同 1、C語言:是一門面向過程的、抽象化的通用程序設(shè)計語言,廣泛應(yīng)用于底層開發(fā)。2、C++:是C語言的繼承,它既可以進行C語言的過程化程序設(shè)計,又可以進行以抽象數(shù)據(jù)類型為特點的基于對象的程序設(shè)計。二、優(yōu)勢不同 1、C語言:能以簡易的方式編譯、處理低級存儲器。C語言是僅產(chǎn)生少量的機器...
類C語言和C語言有啥不同哦?啥區(qū)別呢?
3,特別是C++中的圖形處理,它和語言的圖形有很大的區(qū)別。C語言中的圖形處理函數(shù)基本上是不能用在中C++中的。C語言標(biāo)準(zhǔn)中不包括圖形處理。4,C和C++中都有結(jié)構(gòu)的概念,但是在C語言中結(jié)構(gòu)只有成員變量,而沒成員方法,而在C++中結(jié)構(gòu)中,它可以有自己的成員變量和成員函數(shù)。但是在C語言中結(jié)構(gòu)的成員是...
C語言與單片機C語言的區(qū)別是什么
單片機C語言的出現(xiàn),是為了滿足在單片機上使用C語言的需求。C51就是一種專門為單片機設(shè)計的C語言,它繼承了C語言的基礎(chǔ)特性,但又引入了一些額外的功能,使得編寫單片機代碼更為便捷。實際上,單片機C語言與普通C語言在編譯機理上沒有本質(zhì)區(qū)別。C51語言的本質(zhì)就是C語言,只是在單片機環(huán)境下對C語言進行了...
c語言和匯編語言哪個難(c語言跟匯編語言的區(qū)別)
3、兩者都不難。匯編的指令很少,操作很簡單。單編程來說,匯編是最簡單的,所有指令你看個一小時就能懂。對于像寄存器那些概念你可以去理解,也可以不去理解。不妨礙使用匯編。匯編語言和c語言哪個更難學(xué)其實這兩種都屬于結(jié)構(gòu)化編程語言。C相對于更容易接受一些!并且不用去考慮內(nèi)存的分配,變量的存儲,...
c語言和c++語言有什么區(qū)別?
3,特別是C++中的圖形處理,它和語言的圖形有很大的區(qū)別。C語言中的圖形處理函數(shù)基本上是不能用在中C++中的。C語言標(biāo)準(zhǔn)中不包括圖形處理。4,C和C++中都有結(jié)構(gòu)的概念,但是在C語言中結(jié)構(gòu)只有成員變量,而沒成員方法,而在C++中結(jié)構(gòu)中,它可以有自己的成員變量和成員函數(shù)。但是在C語言中結(jié)構(gòu)的成員是...
C語言和C++語言的區(qū)別是什么?
2、源文件區(qū)別C語言文件后綴為c,c++原文件名后綴為.cpp。如果在創(chuàng)建源文件時什么都不給,默認(rèn)是.cpp。3、返回值不同C語言中,如果一個函數(shù)沒有指定返回值類型,默認(rèn)為int類型,并返回一個隨機數(shù),一般為0XCCCCCCCC。在C++中,如果函數(shù)沒有返回值則必須指定為void型,否則編譯不能通過。4、參數(shù)列...
相關(guān)評說:
廣靈縣關(guān)節(jié): ______ 最大的區(qū)別就在于,C是面向過程,C++是面向?qū)ο?面向?qū)ο蟮暮锰幨窃谟诳梢詫⒁粋€程序分成若干個對象,然后再對單一對象操作,這樣修改起來也方便.具體要你學(xué)了才知道.另外上面說的學(xué)好C++要先學(xué)好C我不認(rèn)同,C++雖然是從C發(fā)...
廣靈縣關(guān)節(jié): ______ 要說這兩個語言的區(qū)別在編程工具上沒什么好講啊,就像問 “面條和米粉的區(qū)別?就說用來盛他們的碗的區(qū)別” 一樣.. 要搞清楚他們的區(qū)別要從他們的特性上來講 C++起源于C,在C的基礎(chǔ)上增加了面向?qū)ο髾C制,而且相對于C的面向過程機制,也做了很多功能上的擴充.C++完全兼容C.
廣靈縣關(guān)節(jié): ______ C是一個結(jié)構(gòu)化語言,如譚老爺子所說:它的重點在于算法和數(shù)據(jù)結(jié)構(gòu).C程序的設(shè)計首要考慮的是如何通過一個過程,對輸入(或環(huán)境條件)進行運算處理得到輸出(或?qū)崿F(xiàn)過程(事務(wù))控制),而對于C++,首要考慮的是如何構(gòu)造一個對象...
廣靈縣關(guān)節(jié): ______ C語言是結(jié)構(gòu)化和模塊化的面向過程的語言,C++語言是面向?qū)ο蟮某绦蛟O(shè)計語言.C++語言是C語言的超集,也就是說學(xué)會了C++,你其實已經(jīng)把C語言學(xué)會了.至于說有什么區(qū)別,應(yīng)該說是編程思想的區(qū)別吧,C是基于過程的,強調(diào)的是程序...
廣靈縣關(guān)節(jié): ______ C++是在C基礎(chǔ)上的擴展 加入了類Class,面向?qū)ο蟮母拍?/li>
廣靈縣關(guān)節(jié): ______ C是面向過程的,C++包含了整個C,C是建立C++的基礎(chǔ).C++包括C的全部特征、屬性和優(yōu)點,同時添加了對面向?qū)ο缶幊?OOP)的完全支持. 還有C++比C多了倆加號 HOHO!!
廣靈縣關(guān)節(jié): ______ 不是一門語言;它們最大的區(qū)別在于 C語言是面向過程的程序設(shè)計 C++是面向?qū)ο蟮木幊?C是入門的基礎(chǔ) 學(xué)語言 一般都是從C開始學(xué)的.
廣靈縣關(guān)節(jié): ______ c語言是結(jié)構(gòu)化程序設(shè)計,而c++是在c的基礎(chǔ)上發(fā)展起來的,是c的一個擴展; 純的c語言精煉短小,很適合在嵌入式開發(fā)中用到!這個是c的優(yōu)越性! 而c++是基于對象的程序語言,里面有類,它具有封裝,多態(tài),繼承性! c++具有的這三個特征就是c++在寫程序的時候的優(yōu)越性!
廣靈縣關(guān)節(jié): ______ C++是對c的擴充. C++是面向?qū)ο蟮?c是結(jié)構(gòu)化語句,不支持對象. C++對頭文件也進行了封裝,去掉了頭文件的后綴名,c的頭文件是以.h結(jié)尾. c++完全兼容c語言. 簡單些說就是c++比c多支持面向?qū)ο蟮墓δ?
廣靈縣關(guān)節(jié): ______ C語言是結(jié)構(gòu)化和模塊化的面向過程的語言,C++語言是面向?qū)ο蟮某绦蛟O(shè)計語言.C++語言是C語言的超集,也就是說學(xué)會了C++,你其實已經(jīng)把C語言學(xué)會了.至于說有什么區(qū)別,應(yīng)該說是編程思想的區(qū)別吧,C是基于過程的,強調(diào)的是程序的功能,以函數(shù)(功能)為中心.C++是面向?qū)ο蟮?強調(diào)程序的分層、分類,以抽象為基礎(chǔ),進行對象的定義與展示,即程序設(shè)計.具體說來話長.建議你學(xué)習(xí)C++的時候,學(xué)會用面向?qū)ο蟮姆绞剿伎己途幊?現(xiàn)在在開發(fā)大項目的時候,都是應(yīng)用面向?qū)ο蟮姆治龊驮O(shè)計的技術(shù).