首页 理论教育 VisualBasic按地址和按值传递的差异

VisualBasic按地址和按值传递的差异

时间:2023-10-20 理论教育 版权反馈
【摘要】:按地址传递VB默认的数据传递方式是按地址传递。按值传递按值传递:通过常量传递实际参数,即传递参数值而不是传递它的地址;因为通用过程不能访问实参的内存地址,因而在通用过程中对形参的任何操作都不会影响实参。值传递和地址传递的一个重要区别:值传递对应的实参是表达式,而地址传递对应的实参只能是变量。设置两个通用过程Test1和Test2,分别按值传递和按地址传递。运行结果:执行Test1前,x=5执行Test1后,Test2前,x=5执行Test2后,x=0

VisualBasic按地址和按值传递的差异

(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

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈