1樓:匿名使用者
這個就涉及到在函式裡邊改變數值了。
要在一個呼叫的函式裡改變數的值的時候,只能通過指標(也就是變數的地址)來改變。
因為函式裡的變數是在棧裡分配空間的,函式一退出就銷燬了那些值了,而傳形參給該
函式的時候,傳的只是形參的值而不是地址,是改變不了原來變數的值的。
具體可以這麼改:
void f(int *v,int *w)然後這麼呼叫:f(&y,&z)
2樓:_北若
你的 void f(int v,int w)函式定義在棧區 當函式 呼叫完畢後 變數自動銷燬f函式呼叫完畢後 vw全部銷燬 對xyz不能產生影響 所以 xyz的值沒有發生改變
想實現此功能 一般用指標 不理解的話 我們再共同** 學習
3樓:
呵呵,你的呼叫的函式並沒有起作用,一你沒返回值,二,mian()中的變數並沒與體現在呼叫的函式中 ,這只是值傳遞,要改為引用傳遞,void f(int &v,int &w)
4樓:匿名使用者
f函式並沒有影響到main函式中xyz的值,這只是值傳遞,形參不能改變實參
5樓:匿名使用者
樓上的朋友已經說得很清楚了,f函式根本沒有影響到x、y、z的值。
6樓:匿名使用者
你的答案是錯的;y 、z 的是沒實現互換 利用呼叫函式實現值互換 只能通過地址互換 及陣列和指標的方法;所以此題根本實現不了值互換;
以後我們可以常常溝通
我也想進步 呵呵
7樓:曹涵意
把函式改為這樣:void f(int& v,int& w)
下面的C語言題目怎麼寫,下面的C語言題目怎麼寫
選b,原來的 a b 的意思是 把 b的值賦予a。而p是指標,指向a的,所以對p取值即 p就是a。所以等價於 p b 喜歡請採納,謝謝! 選擇b啊,p指向a的地址,p即是a的值,所以 p b 等價於 a b 遺失的迷惘 答案 b 這題主要考察的是指標。首先 a b的意思就是用b的值給a賦值 另外in...
c語言執行結果為神魔是0而不是,c語言執行結果為神魔是0 而不是
你的程式應該是這樣吧 if a b else if a 0 printf d n b if a 裡面 a 0 所以判斷if a 0 由於a 1,所以這個if判斷為false,不執行大括號裡面的語句。所以直接輸出printf d n b 因此結果為0.int a 1,b 0 if a xx else ...
有關C語言執行結果的問題
要說明白這個問題,就要講到輸入輸出流的概念。c語言的輸入和輸出都是在一個緩衝區裡面進行,c語言碰上scanf會先檢查輸入流,如果為空,則提示要求使用者輸入,使用者一直輸入直到敲完回車,然後將所有的輸入都送給輸入流,由程式處理。如果不為空,則直接從輸入流處理。來看看樓主的輸入。scanf第一次執行,要...