一道C語言題目

2022-12-31 19:30:19 字數 911 閱讀 1150

1樓:

你那個fun函式寫錯了,因為你用的是指標,你這樣指來指去根本就沒有達到交換的目的,應該為:void fun(int *a,int *b)

具體解答在c程式課本里面有的!!不能通過呼叫函式來改變實參指標變數的值,但可以改變指標變數所指變數的值

2樓:匿名使用者

fun()函式做的是交換指標,在主函式中被呼叫的時候,將原來分別指向a,b的指標x,y進行了交換,現在x指向b,y指向a,a,b裡面的值並沒有變化。

要做到交換a,b的值,應該這樣寫:

void fun(int *a,int *b)

3樓:

void fun(int *a,int *b)函式執行完畢後a還是a,b還是b,即a和b所指向的值沒有變。

void fun(int *a,int *b)函式執行完畢後a還是a,b還是b,但a和b所指向的值在函式內被改變了。

4樓:

void fun(int *a,int *b)

main()

你交換的只是地址不是數值

5樓:匿名使用者

你可以把指標看做是變數,函式體內改變的只是變數,指標指向的地址的值沒有改變。也就是說x,y的值沒有改變。所以輸出3,6

6樓:匿名使用者

x,y是作為值穿進去的,要想改變,必須傳地址

7樓:

*x=&a,*y=&b;

fun(x,y);

*a =&a, *b=&b

交換後*a =&b, *b=&a

a=3 b=6

8樓:藍蝶蓮花

應為列印輸出的是a和b ,而不是x,y.

誰能幫我解決一道C語言題目C語言一道題目,誰能幫我解得

include include include include define eps 1e 6 用於控制商的精確度 main else printf 回答錯誤 n break case 2 for i 1 i 10 i while c 0 printf d.d d n i,a,b scanf d d...

求教!一道C語言題目,求教一道C語言的題目!

你主函式裡m肯定還是1,func函式中的靜態變數應該是8了吧。你檢視變數值的位置是什麼樣的,如果在主函式裡檢視肯定是主函式中的m,即為1,因為發生作用域覆蓋了。你是第二次進入func後設定斷點,檢視m數值的可定為8。由程式執行結果為8 此時i 3,m 3 1 4,因此返回值為8 17 此時i 3 8...

一道C語言題目思路

設定一個for迴圈或者while迴圈,限制條件為 f n f n 1 phi 10 6 由於精度的問題,條件可改為1000000 f n f n 1 1000000 phi 1。f 0 0,f 1 1 int n 2 while 1000000 f n f n 1 1000000 phi 1 sys...