c語言問題

2023-01-02 11:45:34 字數 1601 閱讀 9496

1樓:渾靜秀

首先:子函式(*變數) 呼叫 函式(&變數) 這樣的形式是要帶回返回值得

其次:此題在主函式裡呼叫子函式的時候把x y故意顛倒下 這裡考得應該是你對實參和形參的理解。對應如下:(呼叫時)

主 子 數值

y x 2

x y 1

看到這應該明白 子函式裡顯示的x y是子函式裡的x y 當然是 2 1 了

然後再子函式裡賦值 x = 3 y = 4 子函式結束,剛才說了 這樣的形式是要帶回返回值的,所以主函式裡的x y 也跟著變化 輸出主函式裡的 x y 當然是

4 3了

所以結果應該是 ? 你自己說吧

祝你進步 在有疑問可以發信到 [email protected] 願意為你解答!

2樓:

結果是:2 1 4 3

因為第一個fun(&y,&x),傳遞函式值是把1和2的地址傳遞給*x,*y,就相當於此時的x是2,y的值是1;

*x=3; *y=4;這兩句的意思是改的是主函式x等於4,主函式y等於3了,因為fun(&y,&x)把y的地址傳遞給了&x,把x的地址傳遞給了&y!

3樓:

首先是實參與形參的問題,函式中引用的形參,*x,*y代表輸入的第一個引數和第二個引數,你的傳參順序是&y,&x,當然輸出2,1。並且將第一個引數負值為3,第二個為4。

然後是傳地址的傳參形式,函式直接訪問了實際x,y變數,並修改了其中的值,所以,在輸出x,y就變成了4,3。

4樓:匿名使用者

想證明函式引數為變數和為指標的不同

首先執行fun(&y,&x)把y=2,x=1傳到void fun(int *x,int *y)得到*x=2,*y=1 然後執行printf("%d%d",*x,*y); 在視窗中得到2 1

再執行*x=3,*y=4

傳給主函式中fun(&y , &x) 得到y=3,x=4位置一一對應再執行printf("%d%d",x,y);在視窗中得到4 3所以執行結果為: 2 1 3 4

5樓:睢鳩運菱

輸出是2 1 4 3

函式呼叫時首先執行函式體內的printf("%d %d",*x,*y)輸出結果為

2 1;其次*x=3對y賦值為3,*y=4對x賦值為4,函式返回以後執行接下來的printf("%d %d",x,y)輸出結果為4 3

6樓:

輸出的值是2 1 4 3

首先執行fun函式的printf語句,輸出y和x的值:2 1

由於指標對x,y進行的是直接對記憶體地址上這個值的修改,所以在子函式當中不必return,回到主函式main當中,這兩個值已經被修改,然後printf出:4 3

7樓:匿名使用者

就是想證明函式引數為變數和為指標的不同,如果為指標,呼叫完之後在主函式中的實參之不變,但是若是指標實參就變了,本題目答案是

2 1 4 3

8樓:匿名使用者

結果是:2 1 4 3

c語言問題,C語言問題?

include include int main max min i 0 sum i 0 i 1 i 2 i 3 i 4 i 5 i 6 for j 0 j 6 j printf 去掉一個最高分 0.6lf max printf 去掉一個最低分 0.6lf n min printf 該選手最後的得分...

c語言問題,C語言問題?

char的範圍是 128 127的 你362就溢位了嘛 是這樣的 0362 0是表示8進位制 於是362在10進位制下是242 242溢位了 128 127 於是結果變成242 128 128 14 要明白這個,首先要明白記憶體中 c 變數是什麼樣子的。整數在記憶體中是以補碼的形式存取的。c 036...

C語言問題C語言問題,C語言小問題段錯誤是什麼

str2num char p num num k return num c語言問題c語言問題 include int main int h,m scanf d d h,m printf s num h if m 0 else printf o clock printf n return 0 c語言小...