C++學習筆記---引用


 引用,reference 在本質上就是指針,從創建開始,就與目標綁定
 指針定義
 int a = 123;
 int* p = &a;
 稱作:“p指向了變量a”
 引用定義
 int a = 123;
 int& r = a; //引用的定義
 稱作:“r是變量a的引用”  “r引用了變量a” 和指針是一個意思
 指針的使用
 int a = 123;
 int* p = &a;
 *p = 999;
 引用類型
 int a = 123;
 int& r = a; //引用的定義
 r = 999; //隊r的操作,就是對a的操作
 引用可以看作是目標對象的一個別名,對引用的操作其實就是對目標對象的操作。r的地址與a的地址相同
 注意事項:
 1)引用必須在定義的時候初始化,也就是創建就要與目標對象綁定。
 以下代碼有語法錯誤:
 int a = 123;
 int& r; //語法錯!必須初始化!
 2)引用在定義時就與目標對象綁定,無法解綁
 引用的更多用法
 (1)引用作爲函數的參數
和指針類似,引用也可以作爲函數的參數,功能相同。“傳引用”和“傳地址”本質相同。
所以,參數的傳遞有兩種方式:
1>傳值(效率低)
2>傳地址或傳引用(效率高)
 (2)引用作爲函數的返回值
和指針一樣,引用也可以作爲函數返回值
例:
int number = 0; //全局變量
int& test()
{
return number;//並不是返回了number的值,而返回了他的引用
}
 注意:普通函數的返回值都只是右值,只有返回引用時才能當做左值來用。
 和指針一樣,引用也有安全性問題。
 主要是檢查引用的目標對象是否有效
 比如,引用的目標對象是一個局部變量,那麼,在函數退出後,目標對象失效,所以引用也就不能用了。
 例:
 int& test()
 {
int target = 123;
return target;
 }
 
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章