C++函數按值調用
按值傳遞函數參數拷貝參數的實際值到函數的形式參數的方法的調用。在這種情況下,參數在函數內變化對參數冇有影響。
默認情況下,C++使用調用按值傳遞參數。在一般情況下,這意味著,在函數內代碼不能改變用來調用函數的參數值。考慮函數swap()定義如下。
// function definition to swap the values. void swap(int x, int y) { int temp; temp = x; /* save the value of x */ x = y; /* put y into x */ y = temp; /* put x into y */ return; }
現在,讓我們通過使實際值調用函數swap()如以下示例:
#include <iostream> using namespace std; // function declaration void swap(int x, int y); int main () { // local variable declaration: int a = 100; int b = 200; cout << "Before swap, value of a :" << a << endl; cout << "Before swap, value of b :" << b << endl; // calling a function to swap the values. swap(a, b); cout << "After swap, value of a :" << a << endl; cout << "After swap, value of b :" << b << endl; return 0; }
當上述代碼被放在一個文件中,編譯和執行時,它產生了以下結果:
Before swap, value of a :100 Before swap, value of b :200 After swap, value of a :100 After swap, value of b :200
這表明它的值冇有改變,雖然它們隻是在函數內部改變。