zoukankan      html  css  js  c++  java
  • VB中ByVal与ByRef有什么区别

    VB中ByVal与ByRef有什么区别

    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)
    Pring 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
  • 相关阅读:
    MATLAB中的并行计算
    CVPR 2012 Highlights from Andrej Karpathy
    在.NET客户端程序中使用多线程
    AlcheMo
    笑笑
    字体模糊的解决办法 Windows Mobile
    打开windows mobile的输入模式
    XHTML MP 基础(手机网站开发基础技术)
    U盘修复资料
    历史上最昂贵的8大IT工程失误和教训
  • 原文地址:https://www.cnblogs.com/rosesmall/p/2758989.html
Copyright © 2011-2022 走看看