函式傳回值是參考
Prerequisites:
若傳回值是參考別名,將不會拷貝傳回值到暫存器或stack。
函式宣告語法
資料型態& 函式名(資料型態& 參考別名)
int& getValue(int& z);
函式呼叫方式
y是原始變數的參考別名。
資料型態& 參考別名 = 函式(原始變數);
int& y = getValue(原始變數);
以下程式碼z與y都是x(原始變數)的參考別名,z與y與x三者都指向相同記憶體位址。
完整程式碼
1
2
3
4
5
6
7
8
9
10
11
int& getValue(int& z){
z++;
return z;
}
int main() {
int x = 10;
int& y = getValue(x);
cout << "x = " << x << endl;
cout << "y = " << y << endl;
return 0;
}
x = 11
y = 11