c++ 中, 函式的引數的傳遞方式有三種:值傳遞, 指標傳遞和引用傳遞.
1. "值傳遞" 的示例程式.
void fun1(int x)
執行片斷:
int n = 0;
fun1(n);
cout << "n = " << n << endl; //n = 0
總結: 由於 fun1 函式體內的 x 是外部變數 n 的乙份拷貝, 改變 x 的值不會影響 n, 所以 n 的值仍然是 0。
2. "指標傳遞" 的示例程式.
void fun2(int *x)
執行片段:
int n = 0;
fun2(&n);
cout << "n = " << n << endl; //n =10
總結: 由於fun2 函式體內的 x 是指向外部變數 n 的指標, 改變該指標的內容將導致 n 的值的改變, 所以 n 的值成為 10.
3. "引用傳遞" 的示例程式.
void fun3(int &x)
執行片段:
int n = 0;
fun3(n); //
cout << "n = " << n << endl; //n=10
總結: 由於fun3 函式體內的 x 是外部變數 n 的引用, x 和 n 是同乙個東西, 改變 x 等於改變 n, 所以 n 的值成為10.
對比上面三個示例程式, 你會發現 "引用傳遞" 的性質象 "指標傳遞", 而書寫方式象 "值傳遞".
c 函式引數的傳遞方式
2.引用作為函式引數傳遞 3 總結 4 參考文獻 值傳遞 單向傳遞 實參傳遞給形參 而形參的值無法傳遞給實參 int max int a,int b int swap int a,int b int main 該程式求最大值結果沒問題,但交換兩數有問題。形參 函式定義處 為普通形式 實參 函式呼叫處...
函式引數傳遞的方式
按值傳遞 主調函式向呼叫函式傳遞引數實際上只是將實參的拷貝 即臨時副本 傳遞給了被呼叫函式,並不是實參本身,這樣被調函式不能直接修改主調函式中變數的值,而只能修改其私有的臨時副本的值。引用傳遞 對引用的操作等於對其指定的物件進行操作,當將實參傳遞給形參時,形參就指向了實參 指標傳遞 形參為指向實參位...
函式引數的傳遞方式
在編寫處理諸如int這樣的基本型別的函式時,可以向函式傳遞int數值,也可以傳遞指向int的指標。通常我們直接傳遞數值,只有需要在函式中修改該值時,我們才傳遞指標。對於處理陣列的函式,只能傳遞指標,原因是這樣能使程式的效率更加高。宣告指向常量的指標 不允許通過該指標修改被指向的值 double ra...