1樓:汪好帥
第乙個x引數的形參不是傳入位址,相當於在子函式開闢乙個內部變數,只在內部作用,跳出該函式,重新釋放掉。進入main函式,其值還是 50
第二個y引數的形參傳入的是位址,所以在子函式裡面修改其內容值,是會改變的。所以其值為501
你在子函式裡面加上一句
void fun (int x,int *y)
2樓:溥昌
void fun (int x,int *y)
fun函式的第乙個 引數傳入x的值即50,第二個引數傳入變數y的位址。進入函式內部時,會在棧區開闢乙個int型變數大小的空間用以儲存x的值50,也會開闢乙個指標變數大小的空間用以儲存y的位址。函式執行後,y位址儲存的值會變成(x+1),此時x=x*10即500,所以此時y=501。
而x不會改變,還是50。
不知道我說清楚了沒有。
3樓:匿名使用者
這個程式是告訴你函式引數的值傳遞和指標傳遞的區別。
x是值傳遞,即形參只是實參的值拷貝,對形參的修改不會影響到實參本身。即對fun中的x修改,main中的x的值不會變化 。
y是指標傳遞,即傳遞的是y的指標,在函式中對形參y指向的變數進行修改,會影響到相應的實參。
c語言for迴圈 一道題求解析,C語言for迴圈 一道題求解析
的優先順序比 的優先順序高些,所以是先自加,然後取餘,最後才是比較 還有乙個要提醒的是,mian 函式前面一定要帶上int,當然void也可以通過編譯,但是void不符合標準,這些雖然是小問題也是要注意的,另外你的第一行 就錯了,應該是 include 夜 逍遙 if x 2 0 等價於 if x ...
一道c語言讀程式題,一道c語言讀程式題 include stdio h main int k 4,m 1,p p func k,m printf d, ,p p func
首先輸出結果是 8,17 第二,你上面這個程式編譯不了的,有2個問題 1 函式的返回值型別沒寫 2 func 函式體放在了main 函式後面且沒再main 函式中宣告。第三,註釋該程式 include 標頭檔案 void main 修改1 增加了void int func int a,int b 第...
求解一道生物題,求解一道c語言題
sch知與誰同 當然題目只有限定於二倍體生物,且預設兩個次級精母細胞只有乙個 異常才有解,答案為axb,0y,0y。這種題目的解法就是要通過雙向推理還原 過程 aaxby經細胞減一之前的間期複製後,基因組成為a aa axb xby y,之後無論怎麼 基因的種類與數量應該不變 再從結果分析,a與a出...