所以我有这段帕斯卡代码:
program P;
var a: array [1..2] of Integer;
var i :Integer;
var k :Integer;
procedure update(x,y,z: Integer);
begin
x := x+1;
y := x*2;
x := y;
k := x;
end
begin
a[1] := 5; a[2] := 10;
k := 3;
for i:=1 to 2 do
begin
update(a[i],a[2],k);
print(a);
print(k)
end
end.
(假设'print'打印由空格分隔的数组元素,然后打印一个新行,并且对于一个整数它只打印它)
而且我试图了解如果函数调用是通过值结果或通过引用,输出会有多么不同。
显然,如果它只是按值,很容易看出该过程不会对实际参数产生任何影响,即输出(按值)应该是:5 10 3 5 10 3。
我认为,如果它是价值结果,至少是第一次迭代:12 12 12。在引用的情况下,我感到困惑。那会是什么?