2019寒假C++學習筆記_左值引用
阿新 • • 發佈:2019-01-07
2019寒假C++學習筆記
一:引用
本文所指的引用為左值引用。
引用其實可以理解為一個物件的別名,一般在初始化變數時,初始值會被複製到新建的物件中,而定義引用時,程式則會把引用和初始值繫結到一起,而非複製。一經初始化完成,引用則會一直和他的初始化物件繫結在一起,無法重新繫結到另外的物件上,所以引用必須初始化。
一條語句內可以定義多個引用,引用開頭必須是&符號,且引用型別必須與被繫結物件型別一致(有兩種情況例外)。
引用即別名:引用並非物件,它只是為一個已經存在的物件所起的另外一個名字。
摘自:C++ primer
#include<iostream> using namespace std; int main() { int i = 100, j = 0, a = 20; //這裡定義引用references繫結到變數i上 int &references = i; //此處就可以看出,輸出引用references的值實際上就是輸出引用所繫結的變數的值 cout << " references所引用的物件值為: " << references << endl; //此處給引用重新賦值,實際上就是給引用所繫結的變數重新賦值 references = 10; cout << " 更改後references所引用的值為: " << references << " i: " << i << endl; //此處引用給變數j賦值,實際上就是引用所繫結的變數的值給j賦值 j = references; cout << " j的值為: " << j << endl; //在我剛學習的時候,以為此處的引用像指標一樣重新繫結到了變數a上 //實際上是將a的值賦值到引用所繫結的變數上 //引用一經初始化後無法再次繫結到另外的物件上 references = a; cout << " 更改後references所引用的值為: " << references <<" i: "<< i << endl; //這段就可以看出它們的實際關係了 a = 50; cout << "&references:" << references << " i:" << i << " a:" << a << endl; return 0; }
執行結果為:
references所引用的物件值為: 100
更改後references所引用的值為: 10 i: 10
j的值為: 10
更改後references所引用的值為: 20 i: 20
&references:20 i:20 a:50