0

だから私はこのパスカルコードを持っています:

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 だったと思います。参照による場合、私は混乱しました。それはどうなりますか?

4

1 に答える 1