int n=7;
int & r=n; //一定要初始化爲引用某個變量
r是n的一個引用,是n的一個別名,等價於n,但類型爲 int &
n改r也改,r改n也改
- r初始化後就一直引用n
- 引用不可引用常量和表達式,只能引用變量
int a=1,b=2;
int & r1=a;
int & r2=r1;
則r1,r2都引用a且不會改變。
r1=b;
cout<<a; //2
b給r1賦值,此時r1,r2, a都爲2
引用的例子1:
void swap(int & a,int & b){
int tmp;
tmp=a; a=b; b=tmp;
}
int main{
int a=1,b=2;
swap(a,b);
cout<<a<<b<<endl; //2,1
return 0;
}
引用的例子2:
int n=2;
int & setVal(){return n;} //函數的返回值引用全局變量n
int main(){
setVal()=17;
cout<<n<<endl; //17
return 0;
}
常引用
int n=3;
const int & r=n;
r=4; //出錯
n=4; //正確
const T或const T &不可用來初始化T或T &,反之可以