C與C++有何區(qū)別

C與C++有何區(qū)別

C/C++是指C語或C++,是指一系列的語言C和C++的關(guān)系:好比是win98跟winXP的關(guān)系。C++是在C的基礎(chǔ)上增加了新的理論,玩出了新的花樣。

所以叫C加加。

C和C++的區(qū)別:C是一個結(jié)構(gòu)化語言,它的重點在于算法和數(shù)據(jù)結(jié)構(gòu)百科。C程序的設(shè)計首要考慮的是如何通過一個過程,對輸入(或環(huán)境條件)進行運算處理得到輸出(或?qū)崿F(xiàn)過程(事務(wù))控制)。C++,首要考慮的是如何構(gòu)造一個對象模型,讓這個模型能夠契合與之對應(yīng)的問題域,這樣就可以通過獲取對象的狀態(tài)信息得到輸出或?qū)崿F(xiàn)過程(事務(wù))控制。所以C與C++的**區(qū)別在于它們的用于解決問題的思想方法不一樣。

之所以說C++比C更先進,是因為“設(shè)計這個概念已經(jīng)被融入到C++之中”。再引用高手一些話:C++與C有什么不同呢?我們現(xiàn)在一步步地來分析一下一、類,類對于初學(xué)者,它是一個累贅。類的封裝使得初學(xué)者對程序產(chǎn)生厭倦,感到不適和麻煩。

二、引用,引用是C++中**盡量不要用它,除非萬不得已。引用對于初學(xué)者就更容易產(chǎn)生混淆,不知道哪個是引用,哪個是變量。三、函數(shù)的重載,初學(xué)者學(xué)函數(shù)的重載好像沒什么壞處,但是,這會使初學(xué)者潛意識里對C語言的變量類型的重要性產(chǎn)生淡化,要記住C語言是對變量類型最敏感了的,變量的類型在C語言里的重要性是不言而喻的。

四、流操作符,和上面同樣的道理,使得對變量類型的重要性產(chǎn)生淡化,有時會產(chǎn)生使初學(xué)者莫名其妙的結(jié)果。五、操作符重載,典型的高級應(yīng)用,初學(xué)者可能根本用不著,這個東東會讓他們覺得C++很難,門檻高,看不懂。六、繼承,以及虛函數(shù),看起來深奧,實用價值很低。

還有些東東我就不發(fā)表評論了,如:new,delete操作符等七、誤區(qū):以問答形式:問:C++是面向?qū)ο蠡亩鳦是面向過程化的?答:第二對,**問錯,C++并非完全面向?qū)ο蠡?,真正的面向?qū)ο蠡恼Z言恐怕只有Java才算得上。問:C++能實現(xiàn)C所不能的功能嗎?答:至少我還沒有發(fā)現(xiàn)問:學(xué)了C再學(xué)C++有障礙嗎?比如程序設(shè)計思想答:至少我還沒有看見誰有此癥狀。問:學(xué)了C再學(xué)C++又要重頭開始嗎?答:不,C++下可以實現(xiàn)C語言的一切功能。問:我學(xué)完了C一定還要學(xué)C++才能編程嗎?答:完全沒必要。

問:C++比C好在哪里?答:更加符合軟件工程學(xué)問:學(xué)完了C再學(xué)C++是不是很容易?答:那要看你是不是真正的學(xué)完了C語言。希望你能對C/C++概念上有所了解。

C 與 C++ 的真正區(qū)別在哪里?

C 與 C++ 的真正區(qū)別為以下幾點:

1.不再有#define、#inelude等預(yù)處理器功能
C語言有一個重要的特色就是預(yù)處理器。有些其它語言雖然也加人了#icnlude的功能,但是還缺少處理宏的能力。

使用預(yù)處理器雖然可以方便的實現(xiàn)許多功能,但是從軟件工程的角度來看,對整個軟件的維護其實是很不利的。

由于C語言的預(yù)處理器功能較強,有經(jīng)驗的程序設(shè)計員常會開發(fā)出一套只有自己才看得懂的宏集語言,一旦整個軟件要交付給其它人維護,別人則很難在短時間內(nèi)了解前一個設(shè)計者編寫的宏集功能,由此增加了軟件開發(fā)時集體工作的難度和日后維護的困難。
另外,C語言編譯器所看到的程序碼,與程序設(shè)計者所看到的程序碼是不同的。程序設(shè)計者看到的是尚未經(jīng)過預(yù)處理器處理過的程序碼,而編譯器看到的則是經(jīng)過預(yù)算過的程序碼,一旦交給預(yù)處理器處理的宏集內(nèi)容有誤,編譯器所產(chǎn)生的出錯信息將無法使程序設(shè)計者判斷。這一點也增加了程序除錯的困難。

2.不再有stureutre、union和t即edef
事實上,在C++中就可以去掉C語言中的sturc-utre和,uinon等對復(fù)雜數(shù)據(jù)類型的自定義結(jié)構(gòu)類型。因為類的定義方式可以完全做到這一點。而ty側(cè)刻ef也是不必要的,一切都用類就可以了。

雖然C++這樣的設(shè)計是為了和C相容,但是除了使用了多余的語言規(guī)定外,也造成了對程序認(rèn)識的混淆。

3.不再有oGot
在程序設(shè)計語言的發(fā)展歷史中,G〔,t。一直被毀譽參半。

在很多情況下,使用(3oot可以大幅度減少程序代碼,但也由于oGot可以很自由地改變程序流程,如果不小心使用就會造成程序結(jié)構(gòu)上的混亂。在C語言中,我們可以使用break和。onitnue來改變某一循環(huán)的流程,但是如果想要改變兩層以上的循環(huán)的流程,不是使用oGot就是以多余的邏輯變量(1切l(wèi)aen),配合一個條件語句(if)判斷來實現(xiàn)。

4.不再有OperatorvOerloading
在C++中,operato:voerloading同樣也是一項值得探討的設(shè)計。幾乎在所有的C++書籍中都會引用一些例子,告訴讀者使用operato:voerloadi吃可以使您的程序看起來更自然。如果您使用“+”來作為復(fù)數(shù)的加法符號,大家都不會疑義,但是如果使用“,”或其它符號,別人在閱讀您的程序時就難免會產(chǎn)生疑義。這就是OPeratorvOerloading的問題所在,當(dāng)大家都對運算符斌予自己的定義,整個程序的可讀性就大大降低。

operatorvoerloading的存在并沒有必要,我們一樣可以通過類中的方法來達(dá)到同樣目的。

C語言和C++語言的區(qū)別是什么?

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ū)ο蟮姆绞剿伎己途幊獭,F(xiàn)在在開發(fā)大項目的時候,都是應(yīng)用面向?qū)ο蟮姆治龊驮O(shè)計的技術(shù)。

C語言與C++的區(qū)別有很多: 1,全新的程序程序思維,C語言是面向過程的,而C++是面向?qū)ο蟮摹?2,C語言有標(biāo)準(zhǔn)的函數(shù)庫,它們松散的,只是把功能相同的函數(shù)放在一個頭文件中;而C++對于大多數(shù)的函數(shù)都是有集成的很緊密,特別是C語言中沒有的C++中的API是對Window系統(tǒng)的大多數(shù)API有機的組合,是一個集體。但你也可能單獨調(diào)用API。

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)的成員是公共的,什么想訪問它的都可以訪問;而在VC++中它沒有加限定符的為私有的。 4,C語言可以寫很多方面的程序,但是C++可以寫得更多更好,C++可以寫基于DOSr程序,寫DLL,寫控件,寫系統(tǒng)。

5,C語言對程序的文件的組織是松散的,幾乎是全要程序處理;而c++對文件的組織是以工程,各文件分類明確。 6,C++中的IDE很智能,和VB一樣,有的功能可能比VB還強。 7,C++對可以自動生成你想要的程序結(jié)構(gòu)使你可以省了很多時間。有很多可用的工具如加入MFC中的類的時候,加入變量的時候等等。

8,C++中的附加工具也有很多,可以進行系統(tǒng)的分析,可以查看API;可以查看控件。

c++與c語言的區(qū)別是什么?

c++與c語言的區(qū)別是對象不同、函數(shù)庫不同、結(jié)構(gòu)不同、設(shè)計思想不同。
1、對象不同
C語言是面向過程的,而C++是面向?qū)ο蟮摹?/p>

2、函數(shù)庫不同
C語言有標(biāo)準(zhǔn)的函數(shù)庫,它們松散的,只是把功能相同的函數(shù)放在一個頭文件中;而C++對于大多數(shù)的函數(shù)都是有集成的很緊密,特別是C語言中沒有的C++中的API是對Window系統(tǒng)的大多數(shù)API有機的組合,是一個集體。

3、結(jié)構(gòu)不同
C和C++中都有結(jié)構(gòu)的概念,但是在C語言中結(jié)構(gòu)只有成員變量,而沒成員方法,而在C++中結(jié)構(gòu)中,它可以有自己的成員變量和成員函數(shù)。但是在C語言中結(jié)構(gòu)的成員是公共的,什么想訪問它的都可以訪問;而在VC++中它沒有加限定符的為私有的。
4、設(shè)計思想不同
C++是在C語言的基礎(chǔ)上開發(fā)的一種面向?qū)ο缶幊陶Z言,應(yīng)用廣泛,在C的基礎(chǔ)上增添類,C是一個結(jié)構(gòu)化語言,它的重點在于算法和數(shù)據(jù)結(jié)構(gòu)。

c語言和c++的區(qū)別和聯(lián)系

區(qū)別和聯(lián)系是:主體不同、優(yōu)勢不同、特點不同
主體不同C語言:是一門面向過程的、抽象化的通用程序設(shè)計語言,廣泛應(yīng)用于底層開發(fā)。C++:是C語言的繼承,它既可以進行C語言的過程化程序設(shè)計,又可以進行以抽象數(shù)據(jù)類型為特點的基于對象的程序設(shè)計。

優(yōu)勢不同C語言:能以簡易的方式編譯、處理低級存儲器。

C語言是僅產(chǎn)生少量的機器語言以及不需要任何運行環(huán)境支持便能運行的高效率程序設(shè)計語言。C++:不僅擁有計算機高效運行的實用性特征,同時還致力于提高大規(guī)模程序的編程質(zhì)量與程序設(shè)計語言的問題描述能力。

特點不同C語言:提供了許多低級處理的功能,但仍然保持著跨平臺的特性,以一個標(biāo)準(zhǔn)規(guī)格寫出的C語言程序可在包括類似嵌入式處理器以及超級計算機等作業(yè)平臺的許多計算機平臺上進行編譯。C++:在C++中,類是支持?jǐn)?shù)據(jù)封裝的工具,對象則是數(shù)據(jù)封裝的實現(xiàn)。

C++通過建立用戶定義類支持?jǐn)?shù)據(jù)封裝和數(shù)據(jù)隱藏。C語言和C++的聯(lián)系:C語言的代碼能夠幾乎百分百的能夠在C++的語言環(huán)境下運行,只是c++?有自己的語法,可以說C++的底層和C語言一樣。