1.形参与实参
在8.7.2节的过程调用中,用到了形参与实参。形参即形式参数,它是指在定义通用过程时,出现在Sub或Function语句中的变量名后面括号内的数,用来接收传送给子过程的数据,其默认的数据类型为Variant,用户也可为参数指明数据类型。形参表中的各个变量之间用逗号分隔。
形参变量只有在被调用时才分配内存单元,在调用结束时,就会马上释放所分配的内存单元。因此,形参只在函数内部有效,函数调用结束返回主调函数后则不能再使用该形参变量。
实参即为实际参数,它可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参。因此,应预先用赋值、输入等办法使参数获得确定值。在调用Sub或Function过程时,写入子过程名或函数名后括号内的参数,其作用是将它们的数据(数值或地址)传送给Sub或Function过程与其对应的形参变量。
2.参数传递
参数传递是指在调用过程中主调过程和被调过程之间一般都会有数据传递,主调过程的实参传递给被调过程的形参,然后执行被调过程。实参向形参的数据传递有两种方式:按值传递和按址传递。
(1)按值调用。
按值传递是在形参的前面加ByVal关键字,表示参数传递是按此种方式进行的一种单向的数据传递。其传值的参数传递过程是:主调过程调用时只能由实参将值传递给形参,调用结束后不能由形参将操作结果返回给实参,即主调用过程或函数中的值会变化。
(2)按址调用。
按址传递是在形参的前面加ByRef关键字,表示参数传递是按此种方式进行的一种双向的数据传递。其传值的参数传递过程是:主调过程调用时只能由实参将值传递给形参,调用结束后不能由形参将操作结果返回给实参,即主调用过程或函数中的值不会变化。(www.xing528.com)
(3)两种传递方式的示例演示。
例8-25 传址调用(ByRef)和传值调用(ByVal)的结果对比。
例8-25的示例代码如图8-32所示,示例结果如图8-33所示。
图8-32 参数传递示例代码
图8-33 参数传递示例结果
说明:
(1)从图8-32中可知,此例包含了主过程Command4_Click和子过程cscd。
(2)在子过程中a参数是按ByVal传值调用的,在主调用过程中的值不会跟着变化,故其值还是输入值;而子过程中b参数是按ByRef传址调用的,在主调用过程中的值会跟着变化,会将实参的值传给形参,故得到按址传递后的新值。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。