图 10.19 带有非局部变量和形参的PASCAL过程
|
(1) procedure exchangel(i,j: integer);
//过程exchangel的头,带有形式参数i , j
(2) var x: integer;
(3) begin;
(4) x∶=a[i]; a[i]∶=a[j]; a[j ]∶ =x
//数组a是非局部变量
(5) end; |
语句exchangel(m,n);表示了对图10.19中过程exchangel的一次调用,其中m,n为实在参数,简称实参。我们所讨论的问题是,为执行exchangel(m,n),形参i,j应按何种方式同实参m,n相联,换句话说,如何把实在参数传递给相应的形式参数呢?有几种形实参对应的方法,分别称作值调用,地址(引用)调用,名字调用以及宏扩展。也就是说,参数传递的几种不同途径是传值,传地址,传名及宏扩展等等。