C語言與C++的差異是什麼?


方外靜軒

C++是一個誘餌,誘使那些貪圖所謂方便的程序員為了一點小利遠離程序的本質,使所謂的上層程序員與底層程序員相互依賴,程序員與硬件工程師又相互依賴,不能獨立完成工作,最終都被資本奴役。在我看來這些技術本質都是相通的,之間的差異完全是人為造成的,C++的那些所謂的類,封裝,用C語言完全可以實現,然後一勞永逸地調用,搞懂了C++類的C語言實現原理才算真正懂得了C++的類,真的弄懂了類的實現,用不用C++就變得無關緊要了


潛龍在野394

C語言是一門彙編語言,它是基於底層開發的,由於沒有現成的封裝類很多功能都需要自己手動去寫,開發週期較長,優點是隻需要編譯一遍,用C開發出來的程序運行速度快。

C++屬於C的升級版是使用面向對象思想開發程序的,有現成封裝好的類可以調用,用過面向對象思想開發程序的人都知道,這種方法開發比較快而且不容易出錯,缺點就是要編譯兩遍,軟件運行速度不如C。


霍州葿詘J722

C++比C多了些東西,比如引用,異常,帶方法的struct,構造函數,析構函數,函數重載,template,右值,functonal等等,如果正真精通了C,完全可以在理解C++,沒什麼難的,難的是C++太強大,重載,模板,宏等組合起來後,一萬個人可能會寫出一萬種框架。個人建議是,異常儘量不用,異常改變了執行流程;能用指針就別用引用,兩個基本是一樣的的東西,指針能判斷有效性,引用沒有,引用也有空指針的危險,空引用的崩潰棧沒用;能用句柄加函數的就別用類,簡單靈活,C要用的時候也沒問題


飛天55930451

C和C++最明顯的差異就是C是彙編語言C++是面向對象編程。C++可以說是C的升級版,將C的代碼功能封裝成了一個個不同的類,通過對象調方法就可以了,所以C++比C的開發週期要短,但是有利就有弊C++需要多編譯一遍所以運行速度不如C開發的程序快。


白日夢少女569

因為我工作原因對C++接觸的相對來說比較少。但總體來說C語言是面相過程的,C++ 是面相對象的。可能一開始對過程和對象不大瞭解。說白了就是C語言實現的每一個過程都需要程序員一個一個的敲出來。而C++他裡面有很多的類,程序員只需要使用類不用關心類裡面的具體實現。同時相對於C++,C語言更接近系統底層實現,所以運算速度上C語言會更快一些。


盧培豪334

他們基本的數據類型一致,基本語法相同,你可以在c++上直接使用c的語法和頭文件,調用c庫。c++上多了對象,所以會有很多不同的用法。特別是字符串處理,要比c麻煩的多,但支持更多字符串類型。對象的操作要麻煩一些,有時你需要複製對象指針,有時你只需要原來那個指針。我個人是經常搞混。當然,c++ debug起來比c要方便的多,這也是為什麼它是大型項目首選。運行效率上面,還是c效率更高。小型項目,比如設備驅動,c是非常高效的。操作系統雖然看上去巨大,但都是一個一個小項目組成,而且,需要更多靈活性。因此,操作系統很難用c++寫。


第三代亻氐立耑人口

C++高度兼容C的源碼。還包含更多高級抽象的語法特點。

  1. 名字空間namespace
  2. 面向對象支持,class,繼承,虛函數
  3. 函數中定義類或結構體
  4. 支持引用
  5. 支持模板,實現了泛型STL庫
  6. 新C++標準還有匿名函數、Concepts、auto/decltype輔助類型推理、初始化列表
  7. new/delete支持強類型內存分配和初始化

暗能量泡泡

C語言與C++語言的區別在於C語言是結構化語言,而C++是面向對象的結構化語言。

顧名思義,結構化語言是將數據結構化,過程函數化的計算機語言。

而面向對象的結構化語言是將對象包括其數據及各種機能(以函數的形式表現)結構化的計算機語言。

C++脫胎於C語言,繼承了C語言的全部語法特徵及形式,可以說是C語言的擴充。

與C/C++中用結構描述數據結構相仿,C++中用類描述對象的結構。為了有效的描述對象的結構,在C語言的基礎上C++引入的函數重載機能,繼承的概念和衍生的概念。


分享到:


相關文章: