1樓:熱情的蠟筆小欣
這是不對啊,呼叫f(int,int)函式的時候,是值傳遞,實際上v=x,w=y;然後值發生交換的是v和w,f函式用完後,v,w的值就釋放了,因為他們的值都是在棧裡面。x,y還是原本的x,y,沒有改變,所以你輸出了的還是本來的值。
所以,如果你要實現這個功能的話,可以用指標,也可以定義x y為全域性變數,加油吧,自己思考下,望採納!
2樓:
除了被調函式的形參加上&,和陣列外,別的都是傳遞的變數的副本。
所以改變的是別的值,變數並沒有變。這樣宣告會變的
void f(int &v , int &w)
3樓:百思不de騎姐
void f(int v , int w)這個函式中的v和w只是形參,對主函式中的 數是沒有影響的。
void f(int& v , int& w)這樣就行了,對地址進行操作,就可以實現互換了。求採納
4樓:匿名使用者
改引用void f(int& v , int& w)
5樓:匿名使用者
這是一道基本的關於形式引數和實際引數的題,f()函式運算完以後自動釋放空間,所以雖然在f()函式內v和w完成了交換,但是沒有涉及到地址操作,或者傳遞返回值,f()函式的運算結果沒有辦法作用於main函式,因此交換式不成功的,所以雖然比較了,但是沒有交換,輸出不變。如果想成功將f的引數改為int型的指標,在main中將變數的地址傳入f 轉換就成功了。課本上應該很詳細吧。。。
6樓:樹葉花短篇
兩個形參返回值,要用指標。不如用全域性變數。
#include
int x=0;
int y=0;
int z=0;
void replace(int x,int y)……
7樓:匿名使用者
變數不一樣,函式 f 並沒有改變傳入的變數的值所以輸出的還是原來的值
一道c語言題目求教非常感謝,一道C語言題目,求教,非常感謝
include using namespace std class time time time void print time int gethour int getminute int getsecond time time time private int hour,minute,second...
初學者求教一道c語言題目,一道C語言程式設計題,初學者求教
include include int main void height height pow 0.5,n 小數點後多保留幾位,不然容易出現0.0,同時double型別應該是 lf printf distance 6lf n distance printf distance 1f n distanc...
一道c語言題目求解,一道C語言題目 求解
用最笨的辦法,一圈圈的看,case 0和case 1是一樣的,case2和case3是一樣的 m 4 1 case 1 s 1 k 1m 4 2 case 3 s 1 k 0m 4 3 case 3 s 4 k 4m 4 0 case 1,s 0 k 4 step 1 m 1 s m s 0 1 1...