面試 c和c 的區別

2021-09-30 13:21:11 字數 834 閱讀 1414

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語言用malloc free進行申請 釋放記憶體,c 用new delete進行申請 釋放記憶體,由於堆需要使...

面試 C語言與C 的區別

c是乙個結構化語言,如譚老爺子所說 它的重點在於演算法和資料結構。c程式的設計首要考慮的是如何通過乙個過程,對輸入 或環境條件 進行運算處理得到輸出 或實現過程 事務 控制 而對於c 首要考慮的是如何構造乙個物件模型,讓這個模型能夠契合與之對應的問題域,這樣就可以通過獲取物件的狀態資訊得到輸出或實現...

C 和C的區別

c 與c語言的關係 1 c 繼承了所有的c特性 2 c 在c的基礎上提供了更多更好的語法和特性 3 c 的設計目標是執行效率和開發效率的統一 c 對c語言的加強 1 c 中所有的變數都可以再需要使用時再定義 如 for迴圈等中需要的變數 3 c中可以定義多個同名的全域性變數 c 不可以 4 cons...