看板 TransCSI 關於我們 聯絡資訊
想問一題程式題,下列程式分別採用「call by value」、「call by address」 、「call by name」之A、B值各為多少? PROGRAM PROG (OUTPUR); VAR A,B:INTEGER; PROCEDURE SUB (A,B,C) BEGIN A = B - C; B = A + B; END BEGIN A = 3; B = 5; SUB (A*B,B,A); WRITE(A,B); END 疑惑點:A,B為全域會如何影響結果? call by name的傳值過程是? 謝謝高手!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.118.162.28 ※ 編輯: castin 來自: 122.118.162.28 (07/14 21:41)
future1234:call by name有個步驟會碰到 A*B=B-A; 07/15 22:19
future1234:我不知道這在Pascal合不合法說@@ 07/15 22:19
future1234:雖然 call by name 要道run-time才會決定結果 07/15 22:20
iwindflyer:pascal的程式碼不會考,可以換C板的,觀念則沒差 09/15 14:15
arthur104:答案是A=2,B=20嗎??? 07/24 10:58