請問call by value result
有一個題目如下:
採取pass by value result參數傳遞的方法,請回答下面程式執行的結果:
int y=1,x=1;
int fun(ant a,int b){b+=a; a=b+x; return a;}
int main()
{ int x=2;
y=fun(x,y)+y;
printf("x=%d,y=%d",x,y);
}
我的解題過程如下
實際參數 形式參數
global main fun
x y x a b
1 1
2
數值:2 數值:1
運算式:b+=a
->b=3
運算式:a=b+x
->a=3+globalx
->a=3+1=4
(將a值繫結到main的x) (將b值繫結到
global的y)
(回傳a值4)
3 4
運算式:y=fun(x,y)+y;
->y=4+3=7
因此我的答案是x=4,y=7;但解答是x=4,y=5
不知我的解題過程哪裡有錯呢?
麻煩各位大大,謝謝了.....
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.232.225.26
※ 文章網址: https://www.ptt.cc/bbs/CSSE/M.1485230145.A.A97.html
推
01/24 12:09, , 1F
01/24 12:09, 1F
→
01/24 12:10, , 2F
01/24 12:10, 2F
→
01/24 12:10, , 3F
01/24 12:10, 3F
→
01/24 12:10, , 4F
01/24 12:10, 4F
→
01/24 12:14, , 5F
01/24 12:14, 5F
→
01/24 17:44, , 6F
01/24 17:44, 6F
推
04/03 23:21, , 7F
04/03 23:21, 7F
推
04/12 18:46, , 8F
04/12 18:46, 8F
CSSE 近期熱門文章
PTT數位生活區 即時熱門文章