C 基礎 C 對C的公升級

2021-07-26 15:28:40 字數 2507 閱讀 3207

1.定義的宣告

與c語言相比,

c++中更加強調語言的「實用性」,所有的變數都可以在需要使用時再定義

例如:

for(int i = 0; i < 10; i++)

}

兩個計數變數都可以在使用的時候定義,這時他們的作用範圍只在這個迴圈中,迴圈結束就將被釋放

在c語言中,使用「

&」無法獲得

register

變數的位址,是因為「

&」變數獲取的是記憶體的位址,而暫存器的位址是無法獲得的

但在c++中,

c++編譯器有自己的優化方式,可以取得

register

變數的位址,編譯器發現程式中需要取

register

變數的位址時,

register

對變數的宣告變得無效

3.const關鍵字的變化

在c語言中,使用

const

宣告的變數稱為唯讀變數,變數空間可以修改但不可以通過變數名來進行修改

但在c++中,對這一點進行了強化,使用

const

修飾的變數即變為常量,不能修改其值

4.記憶體分配與釋放(new/delete)

變數申請/釋放格式:

type *pointer = new type     delete pointer

陣列申請/釋放格式:

type *pointer = new type[n]     delete pointer

c++中的動態記憶體分配:

c++中通過

new關鍵字進行動態記憶體申請

c++中的動態記憶體申請是基於型別進行的

delete關鍵字用於記憶體釋放

new關鍵字與

malloc

函式的區別:

new關鍵字是

c++的運算子,

malloc是由c

庫提供的函式

new以具體型別為單位進行記憶體分配,

malloc

只能以位元組為單位進行記憶體分配

new在申請單個型別變數時可進行初始化,

malloc

不具備記憶體初始化的特性

5.引用vs指標

在c++中,引入了引用的概念,引用就是給乙個變數起別名

定義引用的一般格式:&引用名

= 變數名

注意:定義引用時,一定要初始化,致命該引用變數時誰的別名

引用可以作為函式的形參和返回值

作為形參:例如交換兩個數值的函式,在c語言中

void swap(int *a,int *b)

,在c++

中可以寫為

void swap(int &a,int &b)

,使用引用作為函式的形參,避免使用指標,引用作為引數對形參的任何操作都能改變相應的實參資料

作為返回值:函式返回引用的乙個主要目的時可以將函式放在賦值運算子的左邊

引用和指標的區別:

引用訪問乙個變數是直接訪問,而指標是間接訪問

引用是乙個變數的別名,本身不單獨分配自己的記憶體空間,而指標有自己的記憶體空間

引用一經初始化不能再引用其他變數,而指標可以

6.函式的公升級

①內聯函式

②函式過載:相同的作用域,如果兩個函式名稱相同,而引數不同,我們把它們稱為過載overload

函式過載的條件:

形參數量不同

形參型別不同

形參的順序不同

形參數量和形參型別都不同

呼叫過載函式時,編譯器通過檢查實際引數的個數,型別和順序來確定相應的被呼叫函式

注意:返回值不能作為過載的判斷條件

③name managling與

extern 「c

」:c++

為了支援過載,需要進行

name managling

,即將函式名進行改編,所以有時會出現

c++無法呼叫

c語言庫里的函式的情況,這時就需要用到

extern 「c

」來實現c與

c++混合程式設計

7.命名空間

由於c語言中所有的全域性識別符號共享同乙個作用域,識別符號之間可能發生衝突,所以

c++提出了命名空間的概念,命名空間將全域性作用域分成不同的部分,不同命名空間中的識別符號可以同名而不會發生衝突

命名空間的定義

命名空間的使用:

使用整個命名空間:using namespace name

使用命名空間中的變數:using name :: variable

C到C 的公升級

c與c 的關係 1.c 繼承了所有的c特性 2.c 在c的基礎上提供了更多的語法和特性 3.c 的設計目標是執行效率與開發效率的統一 c 對c的加強 1.c 中更強調語言的 實用性 所有的變數都可以在需要使用的時候再定義 for int i 0 i 10 i c 編譯器不報錯 注意 c語言中的變數都...

c到c 的公升級

c 繼承了c的所有特性,c 在c的基礎上同時增加了許多新的語法和特性,c 的目標是實現執行效率與開發效率相統一。c 中更加強調語言的實用性,所有變數可在使用的時候再定義。例如 include int main int argc,char argv printf c d n c printf end....

C到C 的公升級

c 的加強主要表現在 型別的加強 物件導向支援 1 變數定義 c 更強調語言的實用性,所有的變數都可以再需要使用的時候再定義,c語言中的變數都必須在作用域開始的位置定義 int c 0 for int i 1 i 3 i register 關鍵字請求編譯器將區域性變數儲存與暫存器中 早期的c語言編譯...