【摘要】:按地址传递VB默认的数据传递方式是按地址传递。按值传递按值传递:通过常量传递实际参数,即传递参数值而不是传递它的地址;因为通用过程不能访问实参的内存地址,因而在通用过程中对形参的任何操作都不会影响实参。值传递和地址传递的一个重要区别:值传递对应的实参是表达式,而地址传递对应的实参只能是变量。设置两个通用过程Test1和Test2,分别按值传递和按地址传递。运行结果:执行Test1前,x=5执行Test1后,Test2前,x=5执行Test2后,x=0
(1)按地址传递
VB默认的数据传递方式是按地址传递。
按地址传递(关键字ByRef):把实参变量的内存地址传递给被调过程(如Sub过程),即形参与实参使用相同的内存地址单元,这样通过过程就可以改变变量本身的值。
实参必须是变量,不能使用常量或表达式。
求阶乘和的例子中,Form_Load()事件过程是通过“Call Jc(5,y)”和“Call Jc(10,y)”来调用过程Jc(n,t)的,其中采用的第二个参数就是按地址来传送数据的。
(2)按值传递
按值传递(关键字ByVal):通过常量传递实际参数,即传递参数值而不是传递它的地址;因为通用过程不能访问实参的内存地址,因而在通用过程中对形参的任何操作都不会影响实参。
(3)传地址和传值的区别
采用值传递只能从外界向过程(函数)传入信息,但不能传出,正是不能传出,过程结束后,形式参数的值就不会影响外界的任何量,因此说,值传递比较安全;而采用地址传递既能传入又能传出,是一种数据通信方式。值传递和地址传递的一个重要区别:值传递对应的实参是表达式,而地址传递对应的实参只能是变量。(www.xing528.com)
【案例6-7】参数传递方式示例。
【案例操作】
设置两个通用过程Test1和Test2,分别按值传递和按地址传递。
运行结果:
执行Test1前,x=5
执行Test1后,Test2前,x=5
执行Test2后,x=0
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。