作者jim055006 (jim)
看板Grad-ProbAsk
標題[理工] [資結] call by value 與 call by address問題
時間Fri Aug 26 23:39:52 2011
program main(in,out)
procedure p(a,b,c)
begin
b=b+2;
c=c*a;
begin
m:=3;
n:=4;
p(m+n,m,m);
print(m);
end.
-------------------------------------------------------------------
Show the printed value, if the referencing strategy is
Call-by-name and Call-by-address.
試問這題要如何分析??
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 223.141.10.17
推 ceo890710:如果是Call-by-name的話應該是3 因為值並未被改到 08/27 00:00
→ ceo890710:Call-by-address的話我算是35 b=b+2會先將m+2 08/27 00:00
→ ceo890710:然後因為c的位置是傳m的address進去 所以改b的同時也會 08/27 00:01
→ ceo890710:改到c 最後a*c是7*5存回c也就是m的address 然後print(m) 08/27 00:03
→ ceo890710:不知道有沒有錯,有錯請指正~謝謝.. 08/27 00:03
推 jackbll:同樓上想法 08/27 00:20
→ jim055006:我也同意一樓的見解...只是他答案給的卻是name為29 08/28 21:55