手順のある3つのプログラムがあります。
proc01:
output: a=22
proc02:
output: a=16 b=2 c=5
proc03:
output: a=5
proc01 と 03 は同じです。プロシージャ パラメータを変更したことを除いて、なぜ proc01 では "d" 値が追加されましたが、proc03 では追加されませんでした。
proc02 は別の例です。「d」値は追加されません。
どうして????
proc01:
program proc01;
var
a,b:integer;
procedure test01(var a:integer;b:integer);
var
d:integer;
Begin
d:=12;
a:=b+d;
End;
Begin
a:=5;
b:=10;
test01(a,b);
Writeln('a=',a);
Readln;
End.
proc02:
program proc02;
var
a,b,c:integer;
procedure test01(var b:integer; a:integer);
var
d:integer;
Begin
d:=12;
a:=b+d;
b:=a+c;
c:=c+2;
End;
Begin
a:=1;
b:=2;
c:=3;
test01(a,b);
Writeln('a=',a,' b=',b,' c=',c);
Readln;
End.
proc03:
program proc03;
var
a,b:integer;
procedure test01(var b:integer;a:integer);
var
d:integer;
Begin
d:=12;
a:=b+d;
End;
Begin
a:=5;
b:=10;
test01(a,b);
Writeln('a=',a);
Readln;
End.