一个关于按地址传递和按值传递区别的代码,给新手
2007-03-07 00:23
351 查看
测试时直接点窗体就可以了
以下内容复制到窗体代码编辑器:
Option Explicit
Dim mVal As Long
Dim mRef As Long
Private Sub Form_Click()
mByVal mVal
mByRef mRef
End Sub
Private Sub Form_Load()
mVal = 10
mRef = 10
End Sub
'这个函数在调用的时候,用按值传递的方式把mVal传入,然后我们修改一下,看看结果
Private Sub mByVal(ByVal mTemp As Long)
Me.Print "BYVAL演示"
'首先输出原来mVal的值
Me.Print "程序中的mVal:现在数值为" & mVal
'将mTemp修改一下,下面的结果就可以看出,按值传递时mTemp,是原数据的一个副本,改变这个副本,并不对原来的值发生作用
mTemp = 20
Me.Print "程序中的mTemp:现在数值为" & mTemp
'修改之后的结果,并没有影响到原来的数值
Me.Print "程序中的mVal:现在数值为" & mVal
End Sub
'这个函数在调用的时候,用按值传址的方式把mRef传入,然后我们修改一下,看看结果
Private Sub mByRef(mTemp As Long)
Me.Print "BYREF演示"
'首先输出原来mVal的值
Me.Print "程序中的mRef:现在数值为" & mRef
'将mTemp修改一下,下面的结果就可以看出,按址传递时mTemp,是原数据的一个指针,实际上它就是原来的数据,修改它,就修改了原数据
mTemp = 20
Me.Print "程序中的mTemp:现在数值为" & mTemp
'修改之后的结果,影响到原来的数值
Me.Print "程序中的mRef:现在数值为" & mRef
End Sub
以下内容复制到窗体代码编辑器:
Option Explicit
Dim mVal As Long
Dim mRef As Long
Private Sub Form_Click()
mByVal mVal
mByRef mRef
End Sub
Private Sub Form_Load()
mVal = 10
mRef = 10
End Sub
'这个函数在调用的时候,用按值传递的方式把mVal传入,然后我们修改一下,看看结果
Private Sub mByVal(ByVal mTemp As Long)
Me.Print "BYVAL演示"
'首先输出原来mVal的值
Me.Print "程序中的mVal:现在数值为" & mVal
'将mTemp修改一下,下面的结果就可以看出,按值传递时mTemp,是原数据的一个副本,改变这个副本,并不对原来的值发生作用
mTemp = 20
Me.Print "程序中的mTemp:现在数值为" & mTemp
'修改之后的结果,并没有影响到原来的数值
Me.Print "程序中的mVal:现在数值为" & mVal
End Sub
'这个函数在调用的时候,用按值传址的方式把mRef传入,然后我们修改一下,看看结果
Private Sub mByRef(mTemp As Long)
Me.Print "BYREF演示"
'首先输出原来mVal的值
Me.Print "程序中的mRef:现在数值为" & mRef
'将mTemp修改一下,下面的结果就可以看出,按址传递时mTemp,是原数据的一个指针,实际上它就是原来的数据,修改它,就修改了原数据
mTemp = 20
Me.Print "程序中的mTemp:现在数值为" & mTemp
'修改之后的结果,影响到原来的数值
Me.Print "程序中的mRef:现在数值为" & mRef
End Sub
相关文章推荐
- 关于 OnCloseQuery: 顺序、不能关机等(所有的windows的广播消息都是逐窗口传递的)——如果一个窗体的OnCloseQuery事件中如果写了代码那么WM_QUERYENDSESSION消息就传不过去了msg.result会返回0,关机事件也就停止了
- 一个关于"int型二维数组"及"指针数组"作函参的地址传递和带回返回值的问题,指针的拓展练习〈二〉
- 关于VB数组里面按值传递和按地址传递的区别
- 关于函数中传递地址值和结构体的一个小程序
- 关于二级指针的使用测试小例子,仅供测试--参数传递的时候用指针最好,因为压栈的时候指针,只是压入一个地址的值,最多4个字节(32位机上),提供的3个测试例子,基于VC6.0的环境。
- 关于ASP.NET和.NET的区别和联系 对于一个新手,往往会被这些名字给搞蒙了,对不起(笨小孩我也被搞蒙过,见笑啦),这归根结底还是怪自己对知识掌握和了解的不够,废话不多,直接到主题。 ASP.N
- 2.response跳转: a.客户端跳转,地址栏改变; b.所有代码执行完毕后跳转; c.跳转后的页面不能使用上一个页面的request属性; d.使用地址重写传递参数(respon
- JS与PHP向函数传递可变参数的区别实例代码
- 关于获取地址等信息的 代码 百度地图
- 关于shortcut icon和icon代码的区别介绍
- 什么是 值传递,地址传递和引用传递 有什么区别
- 关于下拉刷新你是否真的非常理解还是只会搬砖?附 Android 实例子源代码文件下载地址380个合集
- 详解C++中指针(*)、取地址(&)、解引用(*)与引用(&)的区别 (完整代码)
- Android2.2源代码中关于生成图片缩略图的一个bug
- 以前写的一个关于子窗口控制的代码,很经典
- 关于php中值传递和引用传递的区别
- 关于用addr2line解析函数地址的一个小探索
- 一个关于防止编译器优化特定代码的问题
- 关于一个oc写的命令行版的通讯录程序(代码贴过来无缩进,作为备忘,代码完成度:90%)
- IE浏览器与FF浏览器关于 Ajax传递参数值为中文时的区别