學過C語言的都知道,學好C語言必須要學好指針,指針可以說成是內存中的一個地址,但是在C++中,指針的地位似乎沒有那麼突出,因為使用指針會帶來很多問題,所以C++中增添了引用,在代碼中用“&”表示,和取地址值的符號是一樣的,當然我們在學習使用的過程中一定要注意區分引用和取地址值的符號進行區別。
引用就是為變量起一個別名,C++中的引用共分為以下三類:
下面通過具體代碼實例分別進行介紹:
1.對變量的引用
格式:數據類型 &別名=已定義的變量名
實例:
#include <iostream.h>
void main()
{
int m;
int &n=m; //為變量i引用別名j
m=30;
cout<<"m="<<m<<"n="<<n<<"\n";
n=80;
cout<<"m="<<m<<"n="<<n<<"\n";
cout<<"Address of m"<<&m<<"\n"; //取m地址,這裡不是引用cout<<"Address of n"<<&n<<"\n";
}
運行結果:
通過運行結果發現,當對變量m引用別名n後,對m進行賦值,就是對n進行賦值,反過來對n進行賦值也是對m進行賦值,並且我們發現m和n的地址值是一樣的,所以引用就是為變量起別名,並沒有申請新的內存空間。
但是在使用引用需要注意以下幾點問題:
(1)定義引用時,必須立即對其進行初始化,不能以後再賦值。
(2)引用其實是一種隱式指針,可以少用“*”。
(3)引用不可以重新賦值,不可以作為另一個變量的別名。
(4)不能建立指向引用的指針,不能建立引用的引用,也不能建立引用數組。
2.對函數參數的引用
實例代碼:
#include <iostream.h>
void swap(int & m,int &n)
{
int temp;
temp=m;
m=n;
n=temp;
}
void main()
{
int a=2,b=4;
cout<<"a="<<a<<"b="<<b<<endl;
swap(a,b);
cout<<"a="<<a<<"b="<<endl;
}
運行結果:
通過代碼和運行結果我們可以發現,使用引用作為函數參數時,傳遞的是地址,而不是值,引用參數的方法可以代替C語言中指針地址的調用方式。
3.函數的返回值
實例代碼:
#include <iostream.h>
int a[]={1,3,5,7,9};
int &index(int); //聲明引用函數
void main()
{
index(2)=25; //將a[2]重新賦值
cout<<index(2)<<endl;
}
int &index(int i)
{
return a[i];
}
運行結果:
透過運行結果,可以發現,數組a[]中的第3個元素被改成了25.
好了,就介紹到這裡,希望可以幫到你。