形参是在Sub,Function过程的定义中出现的变量名,实参则是在调用Sub或Func⁃tion过程时传递给Sub,Function过程的常数、变量、表达式或数组。在VB中可能通过两种方式传送参数,即按位置传送和指明传送。
一、按位置传送
参数通过两种方式传送,即传地址和传值,其中传地址习惯上称为引用,引用方式通过关键字“Byref”来实现,形参得到的是实参的地址,当形参值改变的同时也改变实参的值。
说明:
1.实际参数的次序必须和形式参数的次序相匹配,它们的位置、次序必须一致。
2.形参表与实参表中对应变量的名字不必相同,但它所包含的参数的个数和顺序必须相同实参与相应形参的类型必须相同。
3.形式参数表中各个变量之间用逗号隔开,表中的变量可是除定长字符串之外的合法变量名,也可以是数组名。
二、指明传送
所谓指明传送,就是显式的指出与形参结合的实参,把形参用“:=”与实参连接起来,和按位置传递方式不同,指明传送不受位置次序的限制。
传值就是通过值传送实际参数,形参得到的是实参的值,形参值的改变不会影响实参的值。在VB中,传值方式通过关键字“Byval”来实现。(没有Byval默认为Byref)
说明:
1.传值调用时,子程序中的变量名即使与主程序中的变量名相同,但存储在不同的内存单元。即执行程序时即使其内容发生变化,主程序中的变量内容并不会随之改变。
2.当要求按值传递参数时,调用时,可将传值变量用()括起来变成表达式。例如:Call prod((a),(b),(c))。
3.采用传值调用,参数只能从外界向过程(函数)传入信息,但不能传出;而按址参数传递则即能传入,又能传出。
【例10.7】参数传址和传值的区别。
【例10.8】编写程序,试验过程的副作用。在窗体上画一个命令按钮和三个文本框,然后编写如下通用过程和事件过程:(www.daowen.com)
图10-13 例10.8运行效果
三、数组参数的传递
1.在VB中允许把数组做为实参传送到过程中。
2.用数组作为过程参数时,应在数组名后面加一对括号,以免与普通变量相混淆。
3.当用数组作为过程参数时,使用的是“传地址”方式。
4.除了遵守参数传递的一般规则外,还应注意以下几点:
①为了把一个数组的全部元素传递给一个过程,应将数组名分别放入实参表和形参表中,并略去数组的上、下界,但括号不能省略。
②如果不需要把整个数组传送给通用过程,可以只传送指定的单个元素,这需要在数组名后面的括号中写上指定元素的下标。
③LBound函数可以求出数组的最小标值,而用UBound函数可以求出数组的最大下标值。
【例10.9】用数组作参数,求一维数组中的所有负元素之和。
图10-14 例10.9运行效果
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。