C++:關於引用(概念+用法+解釋)

總述
一 引用的概念及用法
引用:給一個已經定義的變量重新起一個別名。
表示方式和指針相似,不同的是用&代替了*,對引用的操作與對變量直接操作完全一樣。
表示方式:類型 &引用變量名 = 已定義過的變量名;
二 引用的特點:

  1. 一個變量可取多個別名
  2. 引用必須初始化
  3. 引用只能在初始化的時候引用一次,不能改變爲再引用其他的變量。因爲引用變量若改爲其他變量,就相當於將之前被引用的變量的值改爲此處的值。

下面的寫法定義了一個引用某個變量,並將其初始化爲類型名 & 引用名 = 某變量名;

int n=4;
int &r=n;//r引用了你,,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 & r2=a;
double & r2 r1;//r2也引用a,此時r1,r2.a三者等價
r2=10;
cout <<a<<endl;  //輸出 10
r1=b;            //r1沒有引用,這裏是把b的值賦給r1
cout<<a<<endl;//輸出4

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

void swap(int *a,int *b)
{
	int temp;
	tenp=*a;*a=*b;*b=tmp;
}
int n1,n2;
swap(n1,n2);//n1,n2的值被交換
``
引用的簡單示例

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

除此之外,引用還可以作爲函數的返回值(目前雖然看看不出他有啥用,但我們得了解了解是吧)

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

常引用
<定義引用時,前面加const關鍵字,即爲“常引用”>

int n;
const int & r=n;
//r的類型是 const int &

不能通過常引用去修改其引用內容:

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

問:爲什麼 r=200 時會顯示編譯錯誤呢?
答曰:因爲規定啊,人家明明說的說的很清楚<不能通過常引用(由規定可知,這裏的常引用爲’r’)去修改其引用內容>
問:爲什麼可以通過n=300來改變r的值呢?
答:可以這樣認爲:n與r在是等價的,因爲定義r被限制了,不能通過引用常量去修改其引用內容,但咱可以通過其他與常引用有關的來修改它對吧


歡迎指正錯誤 >–<

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章