作者bc4269z4 (BBB)
看板Army-Sir
標題[問題] 計概一題程式語言
時間Tue Dec 13 02:45:06 2011
下列程式
Sub (x,y,z) {x=y+z ; y=z-x}
main()
{a=1 ; b=2 ; c=3
call Sub (a,b,a+c)
print (a,b,c) }
問call by value的值 call by reference call by name
答: (1,2,3) (6,-2,3) (6,-2,3)
call by value 是不是因為形式參數不抄回實際參數
輸出值就是(a,b,c)=(1,2,3)呢?
call by reference小弟這個最有問題
先把 a=1,b=2,c=3 代入 (a,b,a+c)=(1,2,4)
再把(1,2,4) 代回main 得 x=2+4=6
y=4-6=-2
z是不是就是a+c=4 呢? 但答案給的是3
小弟有問題...為什麼不是4 而是3呢?
call by name
同樣把 a=1,b=2,c=3 代入 (a,b,a+c)=(1,2,4)
x=y+z=6
再來的y就不會算...
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.167.234.41
※ 編輯: bc4269z4 來自: 118.167.234.41 (12/13 03:03)
1F:→ tidough:第一正解,第二c=3從來沒被改過,第三同第二. 12/14 16:20