ByVal 与 ByRef(默认值)
这两个是子过程的参数传递时,指定参数按什么传递的
ByVal(按值传递)
ByRef(按地址传递)
具体这样来理解:
过程中的参数列表,我们称形参
调用过程时的参数列表,我们称实参

在调用时,我们要将实参的值传递给形参,这样过程才能拿这些数据参与计算并实现一些功能
那么在传递的过程中,就存在这两种传递方式
传值时(ByVal),是先给形参开辟一个临时地址,将实参的内容传入这个临时地址,这样,传递后,形参与实参是在两上不同的地址中,也就是说他们是相互独立的
传址时(ByRef),是直接将实参的地址传递给形参,这样,形参与实参就共用一个地址,所以,形参内容的改变,也直接改变了实参的内容

通过上面的分析,你只要记得:
按值传递时(ByVal),形参的改变不会影响到实参
按址传递时(ByRef),形参的改变,会影响到实参

应用时,我们可以利用按址传递的过程,给一个子过程(Sub过程)进行参数返回

例:
Dim A as integer,B as integer
A=1
B=2
Call AAA(A,B)
Print A,B '得到的结果是2 3 (形参的改变影响到了实参)
Call BBB(A,B)
Print A,B '得到的结果跟上面的一样,2 3(形参的改变并没有影响到这个实参)

Sub AAA(I as integer,J as integer) '默认,则按址传递
i=i+1
J=J+1
End Sub

Sub BBB(ByVal I as integer,ByVal J as integer)
i=i+1
J=J+1
End Sub

VB中传值(ByVal)和传地址(ByRef)的区别相关推荐

  1. JavaScript 函数参数是传值(byVal)还是传址(byRef)?

    对于"JavaScript 函数参数是传值(byVal)还是传址(byRef)"这个问题,普遍存在一个误区:number,string等"简单类型"是传值,Nu ...

  2. C语言交换函数:传值函数与传址函数的区别

    1.传址函数典例 想必初识C语言函数的同学会遇到这样的问题: 当你想要写一个交换函数:交换输入的两个数字的值.明明将要传的两个数字传上去了,函数里的交换写法也没有问题,可为什么运行时会错呢?这就牵扯到 ...

  3. thinkphp5中的系统文件上传和$_FILES用法区别

    thinkphp5中的系统文件上传和$_FILES用法区别 $aa=request()->file('file');$bb=$aa->getInfo(); 后面的file是文件的名字 $b ...

  4. 传值调用 与传地址调用(传引用)

    转自:http://myturn.blog.hexun.com/15584978_d.html #include <iostream> using namespace std ; void ...

  5. VB中的ByVal和ByRef的区别

    ByVal是按值传递,形参的改变不会造成实参的改变. ByRef是按地址传递,形参的改变会造成实参的改变. 这就像是其它语言中的引用传递一样,如php中的 &$args 举个例子: Modul ...

  6. 在pom.xml中配置nexus上传地址

    2019独角兽企业重金招聘Python工程师标准>>> <distributionManagement>         <repository>       ...

  7. Java的形参、实参与传值调用、传地址调用

    形参:方法声明时小括号内声明的变量,如下面的 int i: void fun(int i){i=i+1; } 是为了声明此方法需要传入的参数类型.在方法被调用时创建,在方法结束时销毁,只作用于方法内部 ...

  8. 传值调用,传名调用,引用调用,复制恢复

    传值调用,传名调用,引用调用,复制恢复 例1 1 传值调用 2 引用调用 --传地址引用 3 复制恢复 4 传名调用 例2 例1 程序运行时的存储空间组织如图7-1所示. 其中代码区用于存放目标程序代 ...

  9. VB中ByVal和ByRef

    这是vb中传值与传址的参数修饰 byval 是按值传送,在传的过程中不会改变原来的值,仅仅传送的是一个副本,而 byref 相反,从内存地址来说,后者是同一个内存地址 ByVal为传值,当你把函数外的 ...

最新文章

  1. Java中的I/O模型总结(八股文自述)
  2. 《C++程序设计教程(第3版)》——第3章,第2节cout输出流
  3. JESD204B与LVDS接口并行 管线式ADC延迟问题分析及解答
  4. 并发环境下HashMap引起的full gc排查
  5. 常见.Net 英文专业词汇收集
  6. Hadoop中Context类的作用
  7. MyEclipse完好提示配置
  8. Inscribed Figures
  9. python3 long类型_Python3 基本数据类型
  10. Jquery $ 符号讲解
  11. Hyper-v Server 2012 Release Candidate 部署体验
  12. gevent 学习笔记一
  13. android listview item置顶,ListView的item置顶
  14. 织梦检测环境不支持mysql_本地测试织梦dedeCMS 安装环境
  15. LeetCode数据库 180. 连续出现的数字
  16. ECMAScript 5 —— 基本包装类型之String(下)
  17. 上海车展自动驾驶产业链盘点
  18. c语言ODBC连接数据库
  19. 计算机基础知识及键盘熟悉实验报告,微型计算机组成和键盘操作 实验报告
  20. JS基础-百度换肤案例

热门文章

  1. Win7怎么进入安全模式改密码
  2. Virual Studio 2022 C++ CLR 中 模拟 Android Studo,Eclipse 的 LogCat
  3. Phoenix二级索引那些事儿(下)
  4. 墨言教育:黄鹤楼1800年历史主题海报邀请展:传递历史文化积淀和新时代风采
  5. 评论:Dremel 3D打印机和HP Sprout的初步印象
  6. html 获取浏览器语言,js之获取浏览器语言
  7. JavaScript 网页购物车项目
  8. C语言完美数单循环,《程序设计基础》题库(50道)
  9. ES关键字查询-特殊符号
  10. python经典代码