看板 Grad-ProbAsk 關於我們 聯絡資訊
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