首页 理论教育测量平差程序设计-过程间参数传递

测量平差程序设计-过程间参数传递

【摘要】:调用通用过程或函数过程时,出现在过程名后面圆括号里的常量、变量或表达式,称为实际参数,简称“实参”。一般情况下,过程调用时,实参与形参在数量、变量数值类型上必须一一对应。传址比传值效率高,但采用传址方式,形参并不是真正的局部变量,有可能对程序的执行产生不必要的干扰,比如在过程中对形参赋值,就会改变对应的实参值,当然反过来利用这一点,也可以从过程中传递值出来。

1.形式参数和实际参数

(1)形式参数。

过程定义时,在过程名后圆括号里的变量,称为形式参数,简称“形参”,只有当过程被调用执行时,VB 系统才给形参分配存储空间。形参可以是除定长字符串外的任一单变量或数组变量,若是数组变量,则数组变量名后接空括号。

(2)实际参数。

调用通用过程或函数过程时,出现在过程名后面圆括号里的常量、变量或表达式,称为实际参数,简称“实参”。一般情况下(声明过程时,没有使用Optional\ParamArray关键字),过程调用时,实参与形参在数量、变量数值类型上必须一一对应。两者关系如下表1.11所示。

表1.11 形参和实参关系

在传址的选项下(默认选项),形参和实参是一一对应的,它们共享同一内存地址,因而对形参的赋值,就会导致调用处实参值的相应变化。

形参变量名可以和其它过程中采用的变量名相同,但在该变量不是全局变量的情况下并不是同一变量,形参变量的值变化也不会引起其它过程中同名变量值的变化;若该变量是全局变量,则任何过程中对其赋值都将引起程序其它地方同名变量值的改变。(www.chuimin.cn)

2.参数传递方式

参数有两种传递方式,即传值(ByVal)和传地址(ByRef)。

(1)传址。

传址是让过程根据变量的内存地址去访问实际变量的内容,即形参和实参使用相同的地址,但实参必须是变量,常量和表达式无法传址。

(2)传值。

传值是传递实参的值而不是它的地址。系统将变量复制到一个临时单元,然后将临时单元地址传给被调用的过程,调用结束系统自动收回分配的单元。由于过程没有访问变量(实参)的原始地址,因而不会改变变量原始的值。

传址比传值效率高,但采用传址方式,形参并不是真正的局部变量,有可能对程序的执行产生不必要的干扰,比如在过程中对形参赋值,就会改变对应的实参值,当然反过来利用这一点,也可以从过程中传递值出来。

若调用时实参为常量或表达式,这两种方式没有区别(一律按传值方式)。