C++:引用的簡單理解
阿新 • • 發佈:2021-08-02
一、什麼是引用
引用,顧名思義是某一個變數或物件的別名,對引用的操作與對其所繫結的變數或物件的操作完全等價
語法:型別 &引用名=目標變數名;
C++ 引用 vs 指標
引用很容易與指標混淆,它們之間有三個主要的不同:
- 不存在空引用。引用必須連線到一塊合法的記憶體。
- 一旦引用被初始化為一個物件,就不能被指向到另一個物件。指標可以在任何時候指向到另一個物件。
- 引用必須在建立時被初始化。指標可以在任何時間被初始化。
建立引用
#include <iostream> using namespace std; int main () { // 宣告簡單的變數 int i; double d; // 宣告引用變數 int& r = i; //可以讀作:r 是一個初始化為 i 的 int 型引用 double& s = d; //可以讀作:s 是一個初始化為 d 的 double 型引用 i = 5; cout << "Value of i : " << i << endl; cout << "Value of i reference : " << r << endl; d = 11.7; cout << "Value of d : " << d << endl; cout << "Value of d reference : " << s << endl; return 0; }
上面程式碼編譯執行後得到的結果:
Value of i : 5
Value of i reference : 5
Value of d : 11.7
Value of d reference : 11.7
C++引用幾個需要注意的點
1.引用必須在宣告時將其初始化,不能先聲明後賦值
int main()
{
int rats = 10;
//宣告引用,旦未初始化
int &rodents;
rodents = rats;
return 0;
}
上述程式碼編譯時會報以下錯誤:
error: ‘rodents’ declared as reference but not initialized
2.引用更接近const指標,必須在建立時進行初始化,一旦引用和某個變數關聯起來,該引用就會一直指向該變數。
C++引用的應用
- 把引用作為引數
( C++提供了 傳遞變數的引用。形參是引用變數,和實參是一個變數,呼叫函式時,形參(引用變數)指向實參變數單元。這種通過形參引用可以改變實參的值。)
兩個printf的結果都是10。
總結:
B 引用 A:相當於 B 借用了 A 的記憶體地址和值,A 和 B 任意一個發生改變的話 AB 同時改變。
指標 B 指向 A:B 借用了 A 的值,但是B的記憶體地址重新分配,不同於 A。