例如: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 和...