6-3 傳值呼叫 與 傳參考呼叫
傳值呼叫(call by value)
在叫用函數時,我們通常都會傳入數個參數給該函數,例如底下這個求等差數列第 n 項的函數 An()。
int An(int a, int d, int n)
{
return a+(n-1)*d;
}
int main()
{
cout << An(1, 2, 10) << endl; // 19
cout << An(2, 3, 5) << endl; // 14
}
你可以這樣想像,在第一次叫用 An(1, 1, 10) 的時候
- An 產生了 a, d, n 這三個變數,用來承接傳入的參數
- a 接收到了 1, d 接收到了2, n 接收到了 10
- 回傳 a+(n-1)*d 的運算結果
- An 之前產生的 a, d, n 三個變數消滅