在VisualBaisc中Byref和Byval两者的区别

    作者:课课家教育更新于: 2016-12-19 14:57:36

    大神带你学编程,欢迎选课

      大家在使用VB语言进行开发的过程中,应该对Byval与Byref这两者都不再陌生了吧。ByRef是地址传递,而ByVal是值传递。在交换函数里单纯交换值时没有效果的,需要交换对应的地址。那么我们今天就来学习一下:在VisualBaisc中Byref和Byval两者的区别。

    在VisualBaisc中Byref和Byval两者的区别_VisualBaisc_输出参数_局部变量_课课家

      第一点:因为在函数的内部,输出参数(即out)就已经被我们视作成为一个初始未赋值,引用参数(即ref)就被视作成为一个初始已赋值。

      第二点:在VisualBaisc中的全部参数都是属于值传递的,当然啦这只是在默认的情况下而已。那么什么叫做引用传递呢?仅仅只有在参数的修饰符中明确包含ref或者是out,才是属于引用传递哟。但是在这里我们要需要注意一点的就是,就是当参数的类型是引用类型的时候,我们所传递的不是一个实际的对象而是一个对象的引用。

      第三点:最后一点的区别,那就是引用参数(即ref)在可以作为引用参数在函数成员调用中传递之前,我们一定要已经明确好赋值。然而输出参数(即out)却与它相反,在可以作为一个输出参数在函数成员调用中传递之前我们可以不一定要明确赋值。但是在这个函数成员正常返回之前我们都一定要已明确好赋值。所以在明确赋值这一点上,Byref和Byval两者还是有区别的。

      示范例子:

      为了便于大家的理解,小编找了一个例子来说明,具体的编程代码如下:

    示范例子

      温馨提示:

      在教程开始的时候,小编已经说过了,ByRef是地址传递,而ByVal是值传递。变量ByRef是传递地址的话,那么源数据就有可能被修改,大家对这个变量的操作过程有可能会对大家所传入的那个变量产生一定程度上的影响,就比如说指针的那种感觉。就是当调用一个过程时,是把实参变量的内存地址传递给被调用过程的形参,也就是说形参与实参使用相同地址的内存单元。因此当在被调用过程中改变形参的值,就等于改变了实参的值。

      然而,变量ByVal这是属于传递值源数据的,所以是不会被修改的,我们可以将这个值当作是自己的局部变量来进行使用。在过程被调用时,传递给形参的是调用过程中的相应实参的值,形参与实参各占有不同位置的储存空间,被调用过程在执行过程中,改变了形参变量的值,但不会调用过程的实参值。

      小编结语:

      通过这篇编程语言教程,不知道大家是否已经学会了在VisualBaisc中Byref和Byval两者的区别?其实总的来说,这两者的区别就是:ByRef是地址传递,而ByVal是值传递。大家只要牢记这一点就可以了。课课家教育,你的编程天堂。

课课家教育

未登录

1