下面的c語言執行結果是1 3 2我很不解,麻煩分析一下,我的分析結果是1 2 3,因為符合yz的條件,所以y,z

時間 2021-05-07 20:00:40

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第一次執行,要...