作者deepdish (要和数学装熟..)
看板TransCSI
标题Re: [问题] 指标
时间Mon May 16 12:52:07 2005
PROGRAM main
PROCEDURE p( x, y, z )
BEGIN
y = y + 3; // 2. y 代入 1 + 3 = 4
z = x + x; // 3. z 代入 5 + 5 = 10
END
BEGIN
a = 1;
b = 4;
CALL p( a + b ,a ,a ); // 1. p( 5, 1, 1)
PRINT a;
END
如果用call by test 的方式来呼叫,则印出的a值为何??
Ans:可以看到 p 传了两个 a 过去,可是两个 a 的值都改成不一样的 y 和 z
所以不太可能是 call by reference,不然会错乱,a 不可能同时代表两个值。
资料型态看起来应该都没有改变,所以是 call by value
所以印出的 a 值应该是 1
--
欢迎大家一起加入Intel Philanthropic Peer-to-Peer Program !!!
这项「英特尔慈善『点对点连线』计画」旨在经由网际网路,把数百万部个人电脑连结
起来,加速研发治疗白血球过多症(血癌)的药物,从而把新药上市的需要时间缩短约
一半。对本计画有兴趣者,可以到http://www.grid.org/download/gold/download.htm
网站,下载该程式。
一旦一批资料处理完毕,下次电脑连接上网际网路时,不论经由宽频或拨接,电脑便会
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.115.201.17
1F:推 fly2089:嗯嗯..了解 感谢大大解惑 218.32.156.78 05/16