だから私はこのパスカルコードを持っています:
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.
それが value-result だったら、少なくとも最初の反復: 12 12 12 だったと思います。参照による場合、私は混乱しました。それはどうなりますか?