图 10.20 带有过程swap的PASCAL程序 |
(1) program reference(input, output);
//reference过程定义头
(2) var a, b: integer;
(3) procedure swap(var x, y: integer);
//reference过程内定义的swap的过程
(4) var temp∶ integer;
(5) begin //swap的过程体
(6) temp∶=x;
(7) x∶=y;
(8) y∶=temp
(9) end;
(10) begin //reference的过程体
(11) a∶=1; b∶=2;
(12) swap(a,b);
(13) writeln(a=,a); writeln(b=,b)
(14) end. |
有关键字var时,PASCAL语言的参数传递使用的方式是传地址;去掉var,则使用的方式是传值。
PASCAL语言的变量参数是在参数前加关键字var。这种参数的传递方式是传地址
例如:过程 swap(var x,y:integer);
swap(a,b);(a,b为调用时的实参)调用结果:a,b的值被改变。
在参数前不加关键字var时是值调用。这种参数的传递方式是传值。
例如:过程 swap(x,y:integer);
swap(a,b);其结果:a,b调用前的值不被改变。 |