【C++基礎知識】C++中引用的知識點解析
阿新 • • 發佈:2020-12-15
技術標籤:C++
C++中的引用
引用的概念
建立引用的作用通常是為變數起另一個名字,變數的引用通常被認為是變數的別名。
在宣告一個引用時,必須用另一個變數來將其初始化。例如:
int i=5;
int j=&i; //宣告j是一個整型變數變數的引用,並用i將其初始化。
此處j可以看作是變數i的一個別名,經過這樣的聲明後i和j的作用相同,代表同一個變數。對其進行的操作也是等價的,例如改變j的值,i的值也會隨之發生變化。
變數和引用的關係
#include<iostream> using namespace std; int main() { int i; int &j = i; i = 30; cout << "i=" << i << ' ' << "j=" << j << endl; j = 80; cout << "i=" << i << ' ' << "j=" << j << endl; cout << "變數i的地址是:" << &i << endl; cout << "引用j的地址是: " << &j << endl; return 0; }
執行結果如下:
由此可見,i和j的值同步更新,並且使用同一塊記憶體空間。
說明
1、引用名可以是任何合法化的變數名。除了用作函式的返回值和引數外,在宣告引用時,必須立即進行初始化,不能宣告完成後再賦值。
2、為引用提供的初始值,可以是一個變數,也可以是一個引用。
3、指標是通過地址間接訪問某一個變數,而引用是通過變數別名直接訪問某個變數。每次使用引用時,可以不書寫簡介運算子“**”,因而使用引用可以簡化程式。
4、引用在初始化後不能再重新宣告為另一個變數的引用。
5、並不是任何資料的型別的可以引用,例如:
①、不能建立void型別的引用;
②、不能建立引用的陣列:
int a[4]="abcd"; int &ra[4]=a; //非法
③、不能建立引用的引用,不能建立指向引用的指標;
int a=10; int &&b=a; //非法 int &*c=a; //非法
6、可以將引用的地址賦給一個指標,此時指標指向的是原來的變數。
7、引用運算子“&”只在宣告引用時起該作用,其他場合時出現的“&”都作為地址操作符。
除此之外引用的功能還有很多,例如引用作為函式引數,作為函式返回值等。
符“&”只在宣告引用時起該作用,其他場合時出現的“&”都作為地址操作符。
除此之外引用的功能還有很多,例如引用作為函式引數,作為函式返回值等。