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語言編譯...