void exchg1(int x, int y)
int main()
輸出結果:
x=6,y=4
a=4,b=6
分析:a,b的值沒有發生改變。 這裡exchg1()函式有個隱含操作,int x=a,y=b。故在函式裡改變的是x,y的值,不改變ab。即改變了形參,沒有改變實參。
void exchg2(int *px, int *py)
int main()
輸出結果:
*px = 6, *py = 4.
a = 6, b = 4.
分析:a,b的值發生改變。 這裡exchg2()函式有個隱含操作, x=(&a),y=(&b),注意這裡x,y為指標型別。這裡傳入的是a,b的位址,函式裡是對位址裡面的值進行改變,故a,b的值改變。
void exchg3(int &x, int &y)
int main()
輸出結果:
x=6,y=4
a=6,b=4
分析:a,b的值發生改變。函式中x、y前都有乙個取位址符號「&」,這裡的形參為引用型別,引用與實參進行繫結,作為實參的別名。故傳入實參後,函式對引用的操作,就是對實參的操作,所以實參會發生改變。
"學習原文"
C 語言函式引數的傳遞
c 語言函式引數的傳遞 就像c語言眾多的後世子孫一樣,c 的函式引數是非常講究的。首先,引數必須寫在函式名後面的括號裡,這裡我們有必要稱其為形參。引數必須有乙個引數名稱和明確的型別宣告。該引數名稱只在函式體內部可見。因此在該函式體以外的任何地方使用同樣的變數名是不會引起衝突的。每當呼叫函式的時候,必...
c語言 函式引數的傳遞
程式一 值傳遞 include includeusing namespace std void exchg1 int x,int y int main 原因 函式在呼叫時是隱含地把實參a,b的值分別賦值給了x,y,之後在寫的函式體內再也沒有對a,b進行任何操作了。交換只是x,y變數。並不是a,b。當...
C語言函式引數傳遞的分析
值傳遞,即按值傳遞引數,按值傳遞引數時,是將實參變數的值複製乙個到臨時儲存單元中,如果在呼叫過程中改變了形參的值,不會影響實參變數本身,即實參變數保持呼叫前的值不變。1 形參只能是變數,實參可以是常量 變數或表示式。在被定義的函式中,必須指定形參的型別。2 實參與形參的個數應一樣,型別應一致。字元型...