函式傳參考

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)

results matching ""

    No results matching ""