這裡蒐索程式師資訊,查找有用的技術資料
當前位置:首頁 » 編程語言 » C語言和C有何不同
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

C語言和C有何不同

發布時間: 2023-04-17 19:28:32

c語言與C++語言有什麼區別

C和C++的關系:就像是win98跟winXP的關系。C++是在C的基礎上增加了新的理論,玩出了新的花樣。所以叫C加加。

C和C++的區別:

C是一個結構化語言,它的重點在於演算法和數據結構。C程序的設計首要考慮的是如何通過一個過程,對輸入(或環境條件)進行運算處理得到輸出(或實現過程(事務)控制)。
C++,首要考慮的是如何構造一個對象模型,讓這個模型能夠契合與之對應的問題域,這樣就可以通過獲取對象的狀態信息得到輸出或實現過程(事務)控制。 所以C與C++的最大區別在於它們的用於解決問題的思想方法不一樣。之所以說C++比C更先進,是因為「 設計這個概念已經被融入到C++之中 」。
下面我們一步一步來分析C++與C的不同:

一、類,類對於初學者,它是一個累贅。類的封裝使得初學者對程序產生厭倦,感到不適和麻煩。
二、引用,引用是C++中最好盡量不要用它,除非萬不得已。引用對於初學者就更容易產生混淆,不知道哪個是引用,哪個是變數。
三、函數的重載,初學者學函數的重載好像沒什麼壞處,但是,這會使初學者潛意識里對C語言的變數類型的重要性產生淡化,要記住C語言是對變數類型最敏感了的,變數的類型在C語言里的重要性是不言而喻的。
四、流操作符,和上面同樣的道理,使得對變數類型的重要性產生淡化,有時會產生使初學者莫名其妙的結果。
五、操作符重載,典型的高級應用,初學者可能根本用不著,這個東東會讓他們覺得C++很難,門檻高,看不懂。
六、繼承,以及虛函數,看起來深奧,實用價值很低。還有些東東我就不發表評論了,如:new,delete操作符等
七、誤區:以問答形式:
問:C++是面向對象化的而C是面向過程化的?
答:第二對,第一問錯,C++並非完全蔽塌面向對象化,真正的面向對象化的語言恐怕只有Java才算得上。
問:C++能實現C所不能的功能嗎?
答:至少我還沒有發現
問:學了C再學C++有障礙嗎?比如程序設計思想
答:至少我還沒有看見誰有此症狀。
問:學了C再學C++又要重頭開始嗎?
答:不,C++下可以實現C語言的一切功能。
問:我學完了C一定還要學C++才能編程嗎?
答:完全沒必要。
問:C++比C好在哪裡?
答:更加符合軟體工程學
問:學完了C再學C++是不是很容易?
答:那要看你是不是真正的學完了C語言。

C與C++的最大區別:在於它們的用於解決問題的思想方法不一樣。之所以說C++比C更先進,是因為「 設計這個概念已經被融入到C++之中 」,而就語言本身而言,在C中更多的是演算法的概念。那麼是不是C就不重要了,錯!演算法是程序設計的基礎,好的設計如果沒有好的演算法,一樣不行。而且,「C加上好的設計」也能寫出非常好的東西。

對語言本身而言,C是C++的子集,那麼是什麼樣的一個子集?從上文可以看出, C實現了C++中過程化控制及其它相關功能,而在C++中的C(我稱它為「C+」),相對於原來的C還有所加強,引入了重載、內聯函數、異常處理等等玩藝兒,C++更是拓展了面向對象設計的內容,如類、繼承、虛函數、模板和包容器類等等。 再提高一點,在C++中,數據封裝、類型這些東東已不是什麼新鮮事了,需要考慮的是諸如:對象粒度的選擇、對象介面的設計和繼承、組合與繼承的使用等等問題。

所以相對於型殲C,C++包含了更豐富的「設計」的概念,但C是C++的一個自洽子集,也具有強大的功能,同樣值得學習

幾點學習建議:
1.基本概念很重要。無論學C,還是學C++,基本概念宏租圓都是第一位的,也是比較困難的,但只有把握了基本概念才能把握整體脈絡,才能居高臨下。
2.C是C++的子集,它的基本概念和設計方法相對比較容易理解,初學者可從它入手。
3.如果要學好C++,建議初學者最好別在如VC,BCB平台下寫程序,那種自動化的代碼生成,花花綠綠的界面,會讓你手足無措。最好先找一片空地(unix,dos),從頭做起,寫幾個大點的程序,數個回合,再到VC,BCB下看看,你會輕松得很。在我看來,學好C/C++是成為VC,BCB高手的必由之路。
4.不要妄想速成,必須得一個byte,一個bit的去摳,盡量搞清楚每一個問題。

⑵ C語言和C++的區別

C語言與C++的區別有很多,下面是簡要概述:

1、面向不同

C語言是面向過程的,

C++是面向對象的。

函數庫

C語言有標準的函數庫,它們鬆散的,只是把功能相同的函數放在一個頭文件中;

C++對於大多數的函數都是有集成的很緊密,特別是C語言中沒有的C++中的API是對Window系統的大多數API有機的組合,是一個集體。但你也可能單獨調用API。

3、結構概念不同

C言中結構只有成員變數,而沒成員方法,C語而在但是在C語言中結構的成員是公共的,什麼想訪問它的都可以訪問;

C++中結構中,它可以有自己的成員變數和成員函數。

4、寫作數量不同

C語言可以寫很多方面的程序,

C++可以寫得更多更好,C++可以寫基於DOS的程序,寫DLL,寫控制項,寫系統。

5、組織不同

C語言對程序的文件的組織是鬆散的,幾乎是全要程序處理;

C++對文件的組織是以工程,各文件分類明確。

⑶ c語言和c 區別 是誰的分支

1、C語言是C++語言凱渣的一個子集。C++語言包含了C語言的全部詞法和語法的內容,同時它增加了面向對象程序設計語言所必備的內容。

2、C為面向過程的語言,C++為或孫纖面向對象的語言。C++語言源程序中衫仿比C語言多一種數據類型-----類,也就是多一種變數-----對象。

⑷ C語言和C 的區別有哪些

如果是程序設計的話,沒有區別,都是指C語言。如果不是的話,二樓是正解。

⑸ C語言和C++有什麼區別么

vc,全稱為Microsoft Visual C++,Microsoft Visual C++(簡稱Visual C++、MSVC、VC++6.0或VC6.0)是Microsoft公司推出的以C++語言為基礎的開發Windows環境程序,面向對象的可視化集成編程系統。

一、性質不同

1、Visual C++:Microsoft Visual C++(簡稱Visual C++、MSVC、VC++6.0或VC6.0)是Microsoft公司推出的以C++語言為基礎的開發Windows環境程序,面向對象的可視化集成編程系統。

2、C++:C++是C語言的繼承,進行C語言的過程化程序設計。

二、作用不同

1、Visual C++:適合用來編寫各種復雜軟體。

2、C++:可以進行以抽象數據類型為特點的基於對象的程序設計,還可以進行以繼承和多態為特點的面向對象的程序設計。

三、特點不同

1、Visual C++:有高級語言簡單易用的特性,又可以完成匯編語言才能做的許多工作。

2、C++:支持數據封裝和數據隱藏;支持繼承和重用;支持多態性。

⑹ C語言和C++語言的區別是什麼

C語言是結構化和模塊化的面向過程的語言,C++語言是面向對象的程序設計語言。C++語言是C語言的超集,也就是說學會了C++,你其實已經把C語言學會了。至於說有什麼區別,應該說是編程思想的區別吧,C是基於過程的,強調的是程序的功能,以函數(功能)為中心。C++是面向對象的,強調程序的分層、分類,以抽象為基礎,進行對象的定義與展示,即程序設計。具體說來話長。建議你學習C++的時候,學會用面向對象的方式思考和編程。現在在開發大項目的時候,都是應用面向對象的分析和設計的技術。

C語言與C++的區別有很多:
1,全新的程序程序思維,C語言是面向過程的,而C++是面向對象的。
2,C語言有標準的函數庫,它們鬆散的,只是把功能相同的函數放在一個頭文件中;而C++對於大多數的函數都是有集成的很緊密,特別是C語言中沒有的C++中的API是對Window系統的大多數API有機的組合,是一個集體。但你也可能單獨調用API。
3,特別是C++中的圖形處理,它和語言的圖形有很大的區別。C語言中的圖形處理函數基本上是不能用在中C++中的。C語言標准中不包括圖形處理。
4,C和C++中都有結構的概念,但是在C語言中結構只有成員變數,而沒成員方法,而在C++中結構中,它可以有自己的成員變數和成員函數。但是在C語言中結構的成員是公共的,什麼想訪問它的都可以訪問;而在VC++中它沒有加限定符的為私有的。
4,C語言可以寫很多方面的程序,但是C++可以寫得更多更好,C++可以寫基於DOSr程序,寫DLL,寫控制項,寫系統。
5,C語言對程序的文件的組織是鬆散的,幾乎是全要程序處理;而c++對文件的組織是以工程,各文件分類明確。
6,C++中的IDE很智能,和VB一樣,有的功能可能比VB還強。
7,C++對可以自動生成你想要的程序結構使你可以省了很多時間。有很多可用的工具如加入MFC中的類的時候,加入變數的時候等等。
8,C++中的附加工具也有很多,可以進行系統的分析,可以查看API;可以查看控制項。
9,調試功能強大,並且方法多樣

⑺ C語言和C++有什麼區別

一、主體不同

1、C語言:是一門面向過程的、抽象化的通用程序設計語言,廣泛應用於底層開發。

2、C++:是C語言的繼承,它既可以進行C語言的過程化程序設計,又可以進行以抽象數據類型為特點的基於對象的程序設計。

二、優勢不同

1、C語言:能以簡易的方式編譯、處理低級存儲器。C語言是僅產生少量的機器語言以及不需要任何運行環境支持便能運行的高效率程序設計語言。

2、C++:不僅擁有計算機高效運行的實用性特徵,同時還致力於提高大規模程序的編程質量與程序設計語言的問題描述能力。


三、特點不同

1、C語言:提供了許多低級處理的功能,但仍然保持著跨平台的特性,以一個標准規格寫出的C語言程序可在包括類似嵌入式處理器以及超級計算機等作業平台的許多計算機平台上進行編譯。

2、C++:在C++中,類是支持數據封裝的工具,對象則是數據封裝的實現。C++通過建立用戶定義類支持數據封裝和數據隱藏。


⑻ C語言和C++有什麼區別呢

培訓視頻、在線學習、學習視頻網站、網路學習平台
技術文章 >常見問題
C語言和C++有什麼區別
清淺清淺2019-02-26 13:22:33原創
C語言與C++的區別有:C屬於面向過程語言,C++屬於面向對象語言;另外它們的文件後綴名,關鍵字,函數返回值,函數重載以及參數列表等方面都不相同
對於C語言和C++來說,很多人都容易把C++當做C語言的的升級版,其實它倆之間並不是升級或替代的關系。接下來在文章中將為大傢具體介紹這兩者之間的區別,希望對大家有所幫助。

【推薦課程:C語言教程、C++教程】

C語言和C++的區別

(1)面向過程語言和面向對象語言

C語言是面向過程語言,即先分析出解決問題的步驟然後再將這些步驟一一實現

C++是面向對象語言,即把問題分成若干個對象,目的是為了描述某個事物在解決整個問題的步驟中的行為

(2)關鍵字不同

C語言中有32個關鍵字,而C++有63個關鍵字。另外在C語言中struct關鍵字定義的變數不能有函數,而在C++中可以有函數

(3)文件後綴名不同

C語言中源文件的後綴名是.c,C++源文件後綴名是.cpp

(4)函數返回值不同

C語言中如果一個函數沒有指定返回值類型,默認返回int類型;C++中如果一個函數沒有返回值則必須指定為void

(5)函數重載

函數重載是函數的一種特殊情況,指在同一作用域中,聲明幾個功能類似的同名函數,這些同名函數的形參列表(參數個數、類型、順序)必須不同,返回值類型可以相同也可以不同,常用來處理實現功能類似數據類型不同的問題。

C語言中由於函數符號的規則是根據名稱產生的,因此它不具備函數重載,而C++生成的函數符號則考慮了函數名,參數以及參數類型等

所以C++可以根據函數名參數個數參數類型來判斷重載,屬於靜多態,必須同一作用域下才叫重載

⑼ C語言和C++語言的區別是什麼

在很大程度上,標准C++是標准C的超集.實際上,所有C程序也是C++程序,然而,兩者之間有少量區別.下面簡要介紹一下最重要的區別.
在C++中,民,局部變數可以在一個程序塊內在任何地方聲明,在C中,局部變數必須在程序塊的開始部分,即在所有"操作"語句之前聲明,請注意,C99標准中取消了這種限制.
在C中,按如下方式聲明的函數沒有對函數變元進行任何說明;
int func();
也就是說,如果沒有在函數後面的括孤內指定任何變元,這在C中就意味著對函數變元未做任何聲明,該函數可能有變元,也可能沒有變元,然而,在C++中,這樣的函數聲明意味著該函數沒有變元,也就是說,在C++中,下面這兩個函數聲明具有同樣的作用:
int func();
int func(void);

在C++中,變元列表中的void是任選的.許多C++程序員使用它們是為了表明函數沒有任何變元的,以便於他人理解程序.但是,從技術上說,void不是必須的.
在C++中,所有函數均必須被設計成原型,但這在C中只是一種選擇.編程經驗表明,在程序中也應該給函數採用原型設計方法.在C與C++之間還存在一個重要而又細微的差別,即字元常數在C中被自動作為整形來處理,但在C++中則不然.
在C中,多次聲明一個全局變數雖然不可取,但不算錯.在C++中,多次聲明同一個全局變數會引發錯誤.
在C中,一個標識符可以至少31個有效的組成字元.在C++中,一個標識符的所有組成字元均是有效的.可是,從實用角度看,過長的標識符沒有太大的用處,不僅不便於記憶,而且還會增加出現打字錯誤的可能性.
在C中,在程序內部調用main()函數的情形不常見,但這種做法是容許的,在C++中,這種做法是不容許的.
在C中,無法獲得register型的地址,在C++中則可以獲得這種地址.
在C中,如果類型聲明語句中沒有指定類型名,該類型被假定成int,這種隱式轉型在C99與C++中是不允許的.

#include <iostream>
using namespace std;
為什麼沒有.h後綴名?

名稱iostream沒有擴展名.h,原因是<iostream>是標准C++所定義的新式頭部文件之一,新式C++頭部文件不再使用.h擴展名.
第二行告訴編譯程序使用std名稱空間,名稱空間是最近才添加到C++中,一個名稱空間建立一個聲明範圍,在該范圍內可以放置各種程序元素.名稱空間用來幫助組織大型程序的結構.這條using語句通知編譯程序,程序員需要使用std名稱空間,這是整個標准C++庫聲明所使用的名稱空間.通過使用sdt名稱空間,程序可以簡化對標准庫的訪問.普通C程序僅使用C子集,不需要名稱空間語句,因為C的庫函數在默認的全局名稱空間中是可使用的.

類與結構體的區別:類與結構體是相互關聯的

結構是C的一部分,C++從C中繼承了結構,在語法上,類與結構十分相似,在關繫上,這兩者也很接近,在C++中,結構的作用被拓寬了,進而使結構成為了類的一種替代方法.實際上,類與結構的惟一區別在於:在默認狀態下,結構的所有成員均是公有的,而類的所有成員是私有的.除此之外,類與結構是等價的,也就是說,一個結構定義了一個類的類型.
C++同時包含這兩個等價的關鍵字struct與class基於3個方面的原因.第一,加強結構的能力.在C中,結構提供了一種數據分組方法,因而讓結構包含成員函數是一個小小的改進.第二,由於類與結構是相互關聯的,所有現有C代碼到C++的移植變得更容易.第三,由於類與結構的等價性,提供兩個不同的關鍵字可以使類定義自由發展,為了保持C++與C的兼容性,結構定義必須始終受它的C定義的結束.
即使在有些地方可以使用結構來代替類,但盡量不要這么做,為了清楚起見,該用類的地方就用class關鍵字,該用C結構的地方就用struct關鍵字.

類與聯合是相互關聯的

聯合也可以用來定義類.在C++中,聯合包含成員函數,變數以及構造與析構函數.C++聯合保留了C聯合的全部特徵,其中最重要的特徵是所有數據元素共享內存的相同地址.與結構類似,聯合的成員在默認狀態下也是公有的,並且完全兼容於C.與結構一樣,C++中的聯合聲明定義了一種特殊的類,進而意味著保持了類的封裝原則.
C++的聯合有幾個必須遵守的使用限制.第一,聯合不能繼承其他任何類型的類.第二,聯合不能是基類,不能包含有虛函數成員.靜態變數不能是聯合的成員. 聯合不能使用引用成員,而且不能有任何作為成員的重載賦值運算符的對象.第三,如果一個對象包含明確的構造或析構函數,該對象不能成為聯合的成員.
C++有一個叫做匿名聯合的特殊聯合.匿名聯合沒有類型名,也不聲明任何變數,只是告訴編譯程序它的成員變數共享一個內存地址.但是,變數本身無需要使用常規的點運算符語法即可直接引用.
上述聯合的使用限制也適用於匿名聯合,但下面這兩個限制除外,第一,匿名聯合所包含的元素只能是數據,不能包含成員函數,也不能包含私有或受保護元素;第二,全局匿名聯合必須聲明成靜態的.
C語言與C++的區別有很多:
1,全新的程序程序思維,C語言是面向過程的,而C++是面向對象的。
2,C語言有標準的函數庫,它們鬆散的,只是把功能相同的函數放在一個頭文件中;而C++對於大多數的函數都是有集成的很緊密,特別是C語言中沒有的C++中的API是對Window系統的大多數API有機的組合,是一個集體。但你也可能單獨調用API。
3,特別是C++中的圖形處理,它和語言的圖形有很大的區別。C語言中的圖形處理函數基本上是不能用在中C++中的。C語言標准中不包括圖形處理。
4,C和C++中都有結構的概念,但是在C語言中結構只有成員變數,而沒成員方法,而在C++中結構中,它可以有自己的成員變數和成員函數。但是在C語言中結構的成員是公共的,什麼想訪問它的都可以訪問;而在VC++中它沒有加限定符的為私有的。
4,C語言可以寫很多方面的程序,但是C++可以寫得更多更好,C++可以寫基於DOSr程序,寫DLL,寫控制項,寫系統。
5,C語言對程序的文件的組織是鬆散的,幾乎是全要程序處理;而c++對文件的組織是以工程,各文件分類明確。
6,C++中的IDE很智能,和VB一樣,有的功能可能比VB還強。
7,C++對可以自動生成你想要的程序結構使你可以省了很多時間。有很多可用的工具如加入MFC中的類的時候,加入變數的時候等等。
8,C++中的附加工具也有很多,可以進行系統的分析,可以查看API;可以查看控制項。
9,調試功能強大,並且方法多樣

*C語言是面向過程的,而C++是面向對象的*

⑽ c語言與C++有什麼區別嗎

c語言是握拆面向過程的。面向過程是著重於其中程序設計的演算法、語言的運用,如設計不同功能的函數。

C++是面向對象的。C語言能以簡易的方式編譯、處理低級存儲器。C語言是僅產生少量的機器語言以及不需要任何運行環境支持便能運行的高效率程序設計語言。

c語言的特點:

1、代碼具有較好的可移植性

C語言是面向過程的編程語言,用戶只需要關注所被解決問題的本身,而不需要花費過多的精力去了解相關硬體,且針對不同的硬體環境,在用C語言實現相同功能時的代碼基本一致,不需或僅需進行少量改動便可完成移植,這就意味著,對於一台計算機編寫的C程序可以在另一台計算機上輕松地運行,從而極大的減少了程序移植的工作強度。

2、可生成高質量、目標代碼執行效率高的程序

與其他高級語言相比,C語言可以生成高質量和高效段核棗率的目氏脊標代碼,故通常應用於對代碼質量和執行效率要求較高的嵌入式系統程序的編寫。