さて、私と私の友人の間で以下のコードについて議論がありました。それが生成する出力について少し混乱しています。以下のコードの参照による呼び出しと値による呼び出しの結果を誰かが明確にすることはできますか?
program params;
var i: integer;
a: array[1..2] of integer;
procedure p(x,y: integer);
begin
x := x + 1;
i := i + 1;
y := y + 1;
end;
begin
a[1] := 1;
a[2] := 2;
i := 1;
p( a[i],a[i] );
output( a[1],a[2] );
end.
パラメータが value-result および参照によってプロシージャ p に送信された場合の、このプログラムの結果の出力。