作者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