lessons5 引用( )的本質

2021-08-14 20:14:32 字數 1045 閱讀 7594

例如:int &a = c; 等同於 int *const a = &c;

注意:

(1)、引用占用空間大小與指標相同。

(2)、引用是變數的乙個別名。

(3)、引用的特性:

①功能性:本質是指標

②安全性:可以避免由於指標操作不當帶來的記憶體錯誤

③操作性:簡單

例如:const int &a = var.

該引用使得變數有唯讀屬性

int a = 4;

const

int &b = a;

b = 5; //錯誤:b是乙個唯讀變數

int *p = (int *)&b;

*p = 6; //正確,修改變數a的值

注意:使用常量對const 引用進行初始化時,c++編譯器會為常量值分配空間

,並將引用名作為這段空間的別名

const

int &b = 1; //用常量對const引用進行初始化

int *p = (int *)&b;

b = 5; //錯誤, b是唯讀變數

*p = 5; //正確,修改變數a的值

結論:常量const引用初始化後將變成乙個唯讀變數例項剖析:

#include 

int &demo() //int

*const

int &func()

int main(int argc, char const *argv)

編譯結果:

可以看出現在有的編譯器會出現編譯警告,但是執行直接崩潰。所以要仔細使用const引用,本質就是指標錯誤,而且必須消除編譯產生的每乙個警告資訊,避免出錯。

C 5 引用的本質分析

swap 函式的對比 指標版本 void swap int a,int b 引用版本 注意 函式中的引用行參不需要進行初始化!void swap int a,int b 函式對比分析 引用如果作為函式的形參時,不需要進行初始 初始化發生在呼叫的時候。指標版本要交換a和b的值,傳進去的是a和b的位址,...

C 學習記錄5 引用的本質分析

1 引用是另乙個變數的別名,也就是已經存在的一段儲存空間的別名 2 引用作為變數別名而存在,因此在一些場合可以代替指標 3 引用相對於指標來說具有更好的可讀性和實用性。注意 函式中的引用形參不需要進行初始化,呼叫的時候初始化。swap函式的實現對比 1 在c 中可以宣告const引用 2 const...

重溫python基礎5 引用

引用是乙個值,指向某些資料。列表引用是指向乙個列表的值。先來看一段程式 spam 中的引用被複製給 cheese。只有新的引用被建立並儲存在 cheese 中,而非新的列表。注意,兩個引用都指向同乙個列表。當你改變 cheese 指向的列表時,spam 指向的列表也發生了改變,因為 cheese 和...