1、引用就是另一個變量的別名
2、通過引用所做的讀寫操作實際上是作用與原變量上
引用方式:
int x;
int & rx=x;
or
int x, &rx=x;
在C中&是取地址,在C++中&放在一個變量的定義前,那就是引用
注意:
這種引用是錯誤的,被引用變量必須先定義
TIP:
C++指針與引用符號應該靠近其類型而非名字
如:
float* x; //not: float *x;
int& y; //not: int &y;,這個地方有語法錯誤,因為應用必須依附于一個對象
引用作為函數參數:
引用可做函數參數,但調用時只需要傳普通變量即可。
在被調函數中改變引用變量的值,則改變的是實參的值
int main()
{int x = 0;int y{ 10 };int& rx = x;rx = 8;cout << x << endl;return 0;
}
輸出結果:8
int main()
{int x = 0;int y{ 10 };int& rx = x;rx = 8;const char* s = "Hello";const char* t = "World";const char*& r = s; //r引用的是scout << r << endl;return 0;
}
輸出:Hello
當一個引用變量綁定了一個變量,它的引用變量的關系就不能改變了
int main()
{int x = 0;int y{ 10 };int& rx = x;rx = 8;const char* s = "Hello";const char* t = "World";const char*& r = s; //r引用的是s,當一個引用變量綁定了一個變量,它的引用變量的關系就不能改變了r = t; //s=t; 將World變量的首地址放到變量r里面cout << r << endl;cout << s << endl;return 0;
}
記住:
當我們對引用對象進行操作的時候,實際上就是對引用所綁定的對象進行賦值。
引用本身存放的是引用對象的地址 。
另外: 遇到 & 運算符時,怎樣才能判斷它是哪個含義呢
- 位與
- 取地址
- 定義一個引用類型
靠著右邊取地址(&x),靠著左邊是引用(int&),掛在中間與運算(a & b)
更深層次的含義以及測試手段見:
https://www.cnblogs.com/KaiMing-Prince/p/9741393.html
https://app.yinxiang.com/fx/c1155235-33c5-4d6b-9576-1f1d374c9f29