注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

周超强 廊坊师范学院信息技术提高班第十期

人生没有彩排,每天都是现场直播!

 
 
 

日志

 
 

按值和按地址传递的区别  

2013-02-16 17:36:51|  分类: VB学习 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

参数传递时过程使用中非常重要的问题,通过实际参数和形式参数的传递可以实现调用过程和被调用过程之间的信息交换。

VB中的参数传递有两种方式:按值传递和按地址传递。与两种方式相对应,声明通用过程。

 

格式为:Byval\Byref  变量名 ()as 类型

 

两者的区别是:

就好比是你同学向你借了份试卷,如果是按值传递的意思就是,你同学把你的试卷复制了一份,然后在上面做修改,无论涂写什么,都不会影响到你自己那份试卷(实际参数),而按地址传递的方式就相当于在你的那张试卷上直接做了修改。最后你的那张试卷就会受到影响(即实际参数)。

例子:按值传送

Private Sub Command1_Click()

Dim x As Integer

x = 6

Print "调用sub过程前x="; x         ’最后x=6

Call test(x)

Print "调用sub过程后x="; x         最后x=6

 

 

End Sub

Sub test(ByVal m As Integer)

m = m + 5

 

End Sub

因为我们在调用过程时,要的只是这个结果,没必要把所有的实际参数做一下改变。

按地址传送

Private Sub Command1_Click()

Dim x As Integer

x = 6

Print "调用sub过程前x="; x   '最后x=6

Call test(x)

Print "调用sub过程后x="; x   '最后先11

 

 

End Sub

Sub test(ByRef m As Integer)

m = m + 5

 

End Sub

  评论这张
 
阅读(125)| 评论(8)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017