1. 程式人生 > >2019寒假C++學習筆記_左值引用

2019寒假C++學習筆記_左值引用

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