1樓:暮影
您好,在第一copy次呼叫函式的時候,可以看見引數y 是按地址呼叫,就是說會改變實質的值的,而引數x是按值呼叫的,不會影響主函式裡面的x的值,
第一次呼叫的值如下:
x+=y; //x=15
y+=x;//y=25,因為是按地址呼叫,主函式裡面的y也改變了,所以y=25
第二次呼叫:
x+=y;// 這裡原x=25,y=5;
y+=x;//則這裡y=35,因為這個引數改變的是實參x所以得出你輸出的那個結果
2樓:匿名使用者
&這個是引用的意思。
第一次fun(x,y),即fun(x=5,y=10),x+=y,x=5+10=15 y+x=x, y=y+x ,y=10+15=25
因為y是引用的,內即 main函式裡的y=25.
同理第二容次 x 被引用 fun(x=10,y=25) ,x+=y ,x=10+25=35
所以mian中x = 35
c++問題下面**中這句話那個(x,y) c++ fun[i](x, y) 什麼意思
3樓:愛你飛天夢
typedef double (*tpfun) (double x, double y);
理解了這一層,題主的問題就很好理解了
z=fun(fun(x++,y++),fun(--x,--y));具體呼叫過程。我做出來26,問了很多人都是26。答案是22.求詳細過程
4樓:漂流的
先呼叫fun(--x,--y),再呼叫fun(x++,y++)。
下面這個程式可以證明
這個程式和你的相同型別,先執行的是fun(a--,b--)如果這樣還是看不懂 那我也沒辦法了
5樓:萌哆啦a萌
應該是答案錯了
如果是return a+b 的話確實是26
如果是return b+a的話就是22
6樓:盤庚武丁
c語言的引數呼叫順序是從右向左儲存引數的,所以先執行--
關於c語言的問題,關於C語言的問題。
題1 include int main 題2 include int main 題3 include int main 第1個題目 就是判斷while 括號裡面的值是否為真,因為加了個!所以 k 0 n 為真時while裡面的判斷語句就為假,因為 為邏輯與,就是判斷 兩邊的式子是否為真,當k 0為真...
C語言小問題,關於,關於C語言的小問題?
a b max a max b 語法錯誤,該為 a b max a max b 另外注意 printf 最大值為 c n c 改正為printf 最大值為 d n c 已測試關於i 和 i的區別,如果沒有賦值的話,他們結果是沒區別的,關於他們的區別,我舉例說明 1 int i 0,a a i 這裡結...
C語言與C 的問題
大多數的計算機語言都一樣,開始部分都比較簡單,c和c 中都比較重要的部分就是指標,這也是c與c 的獨有的,c 比c多了物件導向這方面,主要就是類了,把這兩塊學好就是掌握了重點,c 是c的拓展,能相容c。計算機語言都差不多,希望你在學習時多注意總結演算法,這是很重要的一點,演算法是計算機程式設計的核心...