引用的概念和應(yīng)用

定義一個引用,并將其初始化為引用某個變量
類型名&引用名=變量名;

int n = 4;
int& r = n; // r引用了 n,r的類型是  int &

某個變量的引用,等價于這個變量,相當于該變量的 一個別名。

int n = 4;
int & r = n;
r = 4;

cout << r; //輸出 4
cout << n; //輸出 4
n = 5;
cout << r; //輸出 5

引用的概念

定義引用時一定要將其初始化成引用某個變量。

初始化后,它就一直引用該變量,不會再引用別
的變量了。

引用只能引用變量,不能引用常量和表達式。

double a = 4, b = 5;
double & r1 = a;
double & r2 = r1;   // r2也引用 a

r2 = 10;
cout << a << endl; // 輸出 10
r1 = b; // r1并沒有引用b
cout << a << endl; //輸出 5

引用應(yīng)用的簡單示例

C語言中,如何編寫交換兩個整型變量值的函數(shù)?

void swap( int * a, int * b)
{
  int tmp;
  tmp = * a; 
  * a = * b;
  * b = tmp;
}
int n1, n2;
swap(& n1,& n2) ; // n1,n2的值被交換

有了 C++的引用:

void swap( int & a, int & b)
{
  int tmp;
  tmp = a;
  a = b; 
  b = tmp;
}
int n1, n2;
swap(n1,n2) ; // n1,n2 的值被交換

引用作為函數(shù)的返回值

int n = 4;
int & SetValue() { return n; }
int main()
{
  SetValue() = 40;
  cout << n;
  return 0;
}//輸出:40

常引用

不能通過常引用去修改其引用的內(nèi)容:

int n = 100;
const int & r = n;
r = 200; //編譯錯
n = 300; //沒問題

常引用和非常引用的轉(zhuǎn)換

const T &和T &是不同的類型!

T &類型的引用或T類型的變量可以用來初始化const T &類型的引用。

const T類型的常變量和const T &類型的引用則不能用來初始化T&類型的引用,除非進行強制類型轉(zhuǎn)換。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容