&在C/C++中做右值時,為取地址運算符,來指示變量的地址。C++給&符號賦予了另外一個含義,將其用來聲明引用。
引用變量的作用:
1、別名
int b = 0;
int& a = b;
2、用作函數參數
和指針作為函數參數一樣,可以提高函數的效率,函數參數在按值傳遞的情況下,會產生一個臨時的副本。
//引用: void func(int& x); int a = 0; func(a); //指針: void func(int* x); int a = 0; func(&a); //值傳遞: int func(int* x); int a = 0; int result = func(a);
void func(int& x){
x = x * x;
}
void func(int* x){
*x = (*x) * (*x);
}
int func(int x){
int result = x * x;
return result;
}
3、用於函數返回值
用引用作函數的返回值的最大的好處是在內存中不產生返回值的副本
StringBad& StringBad::operate=(const StringBad& other);
引用使用的注意事項:
1、必須在聲明引用的時候初始化,這與指針不同,指針可以先聲明,后賦值,引用的這個屬性和const類似。
引用不能為空,不存在空引用,但是指針卻可以存在空指針,這就意味着我們拿到一個引用時不需要判斷引用是否為空,但是如果拿到的是一個指針,則需要判斷指針是否為空之后再進行指針的進一步操作。
2、引用一旦建立,將一直效忠於他,不能再引用。