C和C 的區別

2021-09-13 03:00:40 字數 759 閱讀 7687

c是面向過程,而c++是物件導向的

1.函式預設值

c++中函式傳參時可以為預設值,而c語言不支援,並且c++必須遵循從右向左賦初始值。

2.inline內聯函式

叫做「更安全的巨集」在呼叫點直接展開,不生成符號,沒有棧幀的開闢回退,僅在release

版本下生效。一般寫入到到檔案中。

3.函式過載

靜多型:函式過載、函式模板,過載時必須考慮到函式名、引數個數、引數型別,過載時必須

在同意作用域下

4.const

c中的const叫唯讀變數,只是無法做左值得變數。c++中的const是真正的常量,但也有可能

退化為c語言的常量。

5.引用

引用的底層實現本身就是乙個指標,引用在使用時直接就是指標的解引用。

6.malloc/free和new/delete

malloc是函式,而new是操作符

malloc需要進行強制型別轉換,而new後面只需跟型別。

malloc需要計算所要開闢空間的大小,而new只需要在後面跟型別即可。

malloc需要判空處理,而new不需要,但new需要進行異常捕獲。

new和delete在使用時會呼叫構造和析構函式,而malloc不用

new的效率比malloc低,因為new的底層實現是malloc。

malloc開闢在堆區,new開闢在自由儲存區域。

7.作用域

c中只有全域性、區域性作用域,而c++中有類作用域、區域性作用域、命名空間作用域。

C 和C的區別

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

C和C 的區別

這裡主要討論的是區別,而不是c 中有的,而c語言中沒有的東西。c 比c語言多了很多東西,最重要的當屬類 物件導向程式設計 和模板 泛型程式設計 基於泛型程式設計還引出了元程式設計 metaprogramming 等等。這裡討 共部分但是不一樣的部分 函式過載是c 支援的,c不支援 c 的函式過載在類...

C 和C的區別

c c 的聯絡 c c 區別 小知識點補充擴充套件 free 而new開闢物件陣列用的是new size 釋放的的時候是 delete 5 返回值問題,malloc開闢成功返回void 需要強轉,失敗返回null,new 成功返回物件指標,失敗丟擲異常 這就可能會提到c 的new handler機 ...