C 中使用形參改變實參變數的值

2021-10-08 02:22:21 字數 804 閱讀 4137

當實參為普通變數的時候

若形參為指標,例如

```

bash

int main(

) void swap(int *x,*y)

另外一種情況就是形參為引用引數,
int main(

) void swap(int &x,&y)

即不是將實際引數的位址傳遞到函式形參中,而是直接將物件名(變數名)傳遞過去

2.當實際引數為陣列的時候

當形參為指標的時候,和上面的用法一致,只不過陣列中傳遞位址的方式比較簡單,只需要將陣列名傳遞就好,另外形參接受位址時,也只需要寫成下方的格式

int main(

),b=

; swap(a,b);}

void swap(int x[

],y)

或者

int main(

),b=

; swap(a,b);}

void swap(int *x,*y)

此外,也可以用引用的方式,這裡不做贅述了

形參的數值改變不會改變實參的值

輸入a b兩個整數,用指標按先大後小的順序輸出a和b 正確 include void swap int p1,int p2 void main printf max d nmin d n max,min 錯誤 如下 1 void swap int p1,int p2 2 void swap int ...

c 形參改變實參(對指標的理解

這幾天搞邏輯比較暈,居然把指標的概念都混淆了。eg int p 當然不對指標初始化在有些編譯器是通不過編譯的,比如vs 尤其是選中了sdl 指標p是乙個物件,定義開始沒有分配了記憶體空間,只是定義了乙個指標而已。p存放的是物件的位址。可見取位址運算子 改變了指標i的位址,使i指向a。解引用 i就是i...

java 形參改變與實參的關係

主函式 change函式 執行結果 結論 變數傳遞到函式中時是形參,是不是陣列都有引數。對於非陣列變數,引用型別形參和實參的位址不一樣但是他們指向的位址是一樣的,但是形參改變時會指向另乙個地方而實參指向的地方值不會變比如下圖 假如有s hel 現在有函式改變他為s pic 實際變化如下圖 基本資料變...