函式傳參考
Prerequisites:
傳值與傳參考的程式碼幾乎一模一樣,差別只在於,傳值無法修改傳入的參數,傳值的意義在於不要讓函式修改傳入的參數,而傳參考是允許函式存取傳入的參數。
宣告
語法
函式傳回資料型態 函式名(資料型態& 別名, ...);
void callByRef(int& param1, int& param2);
參數宣告為資料型態&,參數就變成別名,引數 就變成原始變數。
傳值
1
2
3
4
5
6
7
8
9
10
11
12
void callByValue(int param1, int param2){
param1 = 100;
param2 = 200;
}
int main() {
int i = 10;
int j = 20;
callByValue(i,j);
cout << "callByValue:" << endl;
cout << "i = " << i << ", j = " << j << endl;
return 0;
}
callByValue:
i = 10, j = 20
傳參考
呼叫函式時,引數不用加&
callByRef(i,j);
1
2
3
4
5
6
7
8
9
10
11
12
void callByRef(int& param1, int& param2){
param1 = 100;
param2 = 200;
}
int main() {
int i = 10;
int j = 20;
callByRef(i,j);
cout << "callByReference:" << endl;
cout << "i = " << i << ", j = " << j << endl;
return 0;
}
callByReference:
i = 100, j = 200
傳值與傳參考的差別
二者只有參數不同。
-
傳值 void callByValue(int param1, int param2)
-
傳參考 void callByRef(int& param1, int& param2)