總述
一 引用的概念及用法
引用:給一個已經定義的變量重新起一個別名。
表示方式和指針相似,不同的是用&代替了*,對引用的操作與對變量直接操作完全一樣。
表示方式:類型 &引用變量名 = 已定義過的變量名;
二 引用的特點:
- 一個變量可取多個別名
- 引用必須初始化
- 引用只能在初始化的時候引用一次,不能改變爲再引用其他的變量。因爲引用變量若改爲其他變量,就相當於將之前被引用的變量的值改爲此處的值。
下面的寫法定義了一個引用某個變量,並將其初始化爲類型名 & 引用名 = 某變量名;
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被限制了,不能通過引用常量去修改其引用內容,但咱可以通過其他與常引用有關的來修改它對吧
歡迎指正錯誤 >–<