假設有以下程式片段,在副程式呼叫中,若以位址傳遞(Call by Address)的方法來傳遞參數,請問print(C)指令執行結果 C 值為多少? sub(W, X, Y, Z); begin X = W + W; Z=Y-W ; end; … A=6; B = 7; C = 8; call sub(A, A, A+B, C); print(C);
A7
B1正確答案
C12
D8
答案與詳解
W 與 X 都綁到 A。執行 X=W+W 後 A 變成 12(W 同步變 12)。Y=A+B 是運算式只能傳值=13。Z=Y-W=13-12=1,Z 綁 C,故 C=1。
