c語言 函式引數的傳遞

2021-10-05 04:35:31 字數 808 閱讀 6900

程式一:值傳遞

#include#includeusing namespace std;

void exchg1(int x, int y)

int main()

原因:函式在呼叫時是隱含地把實參a,b的值分別賦值給了x, y,之後在寫的函式體內再也沒有對a,b進行任何操作了。交換只是x,y變數。並不是a,b。當然a,b的值沒有改變了。函式只是把a,b的值通過付值傳遞給了x,y,函式裡面的操作只是x,y的值並不是a,b的值。這就是所謂的值傳遞了。

程式二:位址傳遞

#include#includeusing namespace std;

void exchg1(int *x, int *y)

int main()

函式的隱含複製操作是將a,b的位址給了x,y。可以看出,指標x,y的值分別是a,b變數的位址值了。接下來,對*x,*y的操作當然也就是對a,b變數本身的操作了。

程式三:引用傳遞

#include#includeusing namespace std;

void exchg1(int &x, int &y)

int main()

x,y分別引用了a,b變數。這樣函式裡頭操作的其實就是實參a,b本身了。也就是說函式裡是可以直接修改到a,b的值。

值傳遞和引用傳遞的區別:

1:在函式定義格式上不同。

2:呼叫時有相同格式。

3:功能上是不同的。(乙個操作的不是變數本身,乙個是本身)

C 語言函式引數的傳遞

c 語言函式引數的傳遞 就像c語言眾多的後世子孫一樣,c 的函式引數是非常講究的。首先,引數必須寫在函式名後面的括號裡,這裡我們有必要稱其為形參。引數必須有乙個引數名稱和明確的型別宣告。該引數名稱只在函式體內部可見。因此在該函式體以外的任何地方使用同樣的變數名是不會引起衝突的。每當呼叫函式的時候,必...

C語言函式引數傳遞的分析

值傳遞,即按值傳遞引數,按值傳遞引數時,是將實參變數的值複製乙個到臨時儲存單元中,如果在呼叫過程中改變了形參的值,不會影響實參變數本身,即實參變數保持呼叫前的值不變。1 形參只能是變數,實參可以是常量 變數或表示式。在被定義的函式中,必須指定形參的型別。2 實參與形參的個數應一樣,型別應一致。字元型...

C語言函式引數的傳遞詳解

開講之前,我先請你做三道題目。嘿嘿,得先把你的頭腦搞昏才行 唉呀,誰扔我雞蛋?考題一,程式 如下 void exchg1 int x,int y main 輸出的結果為 x y a b 問下劃線的部分應是什麼,請完成。考題二,程式 如下 void exchg2 int px,int py main ...