vb中传址与传值有什么区别?

最好结合例子说明。... 最好结合例子说明。 展开
 我来答
Rontion
推荐于2016-07-11 · 超过25用户采纳过TA的回答
知道答主
回答量:96
采纳率:0%
帮助的人:120万
展开全部
'传值就相当于把要传给函数的数值复制一份后传给了他
'函数对这个数值进行修改后,原数值不变

'传址就相当于把要传给函数的数值的地址传给了他
'函数对这个数值进行修改后,原数值改变

'具体的看下面的例子

'新建窗体,添加两个命令按钮控件,复制以下代码

Private Sub Form_Load()
Command1.Caption = "传值测试"
Command2.Caption = "传址测试"
End Sub

Private Sub Command1_Click()
Dim i As Integer
传值 i
MsgBox "传值后结果为 : " & i
End Sub

Private Sub Command2_Click()
Dim i As Integer
传址 i
MsgBox "传址后结果为 : " & i
End Sub

Private Sub 传值(ByVal i As Integer)
i = 50
End Sub

Private Sub 传址(ByRef i As Integer)
i = 50
End Sub

'望采纳。。。
fandyfandy0
2011-07-04 · TA获得超过1712个赞
知道小有建树答主
回答量:648
采纳率:100%
帮助的人:543万
展开全部
给你打个比喻:
 我有一个抽屉,抽屉里有一本书,你向我要那本书。
 传值就是我把那本书复印一份,把复印件给你,原件我留着再放回抽屉里
 传址就是我把抽屉的钥匙给你,你自已去拿东西,你可以在抽屉里任意取放,换其它东西放进去也可以
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友ba88284
2011-07-05 · TA获得超过1521个赞
知道大有可为答主
回答量:1822
采纳率:73%
帮助的人:565万
展开全部
传值ByVal是将数值传给形参
我以一个例子讲解
Function add(Byval a as integer,Byval b As integer)
Dim c As Integer
a=a+1
b=b+1
c=a+b
add=c
End Function
上面的是传值,也就是当调用的时候,例如
Add(a,b)
这里实际上是等同于
Add(a值,b值)

如:
aa=12:bb=3
调用Add(aa,bb)时,系统会把数值12和3传给函数“Add”
结果是aa,bb原值未变
但是传址不一样
同样的功能,我把它改成传址时的模式:
Function add(ByRef a as integer,ByRef b As integer)
Dim c As Integer
a=a+1
b=b+1
c=a+b
add=c
End Function
这个时候,如果执行下面的程序段:
aa=12:bb=3
Add(aa,bb)
Print aa & " " & bb
你会发现他们的值变了
因为传值的时候是将数据给函数,这样函数无法对aa,bb这种数据进行修改
形象一点:你去查分,别人把分数读出来给你听,就相当于传值
别人把分数表给你看,(这个时候你可以读取分数,也可以改分数)就是传址。这就是为什么查分的时候都是给你的数值,而不是把你放进教育局自己查档案,嘿嘿
希望对你有帮助
打这么多字好累,给分吧,嘿嘿
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
吉利吴
2011-07-07 · TA获得超过220个赞
知道小有建树答主
回答量:415
采纳率:0%
帮助的人:212万
展开全部
'传值就相当于把要传给函数的数值复制一份后传给了他
'函数对这个数值进行修改后,原数值不变

'传址就相当于把要传给函数的数值的地址传给了他
'函数对这个数值进行修改后,原数值改变

上面说的够清楚
传址,传的是地址,即使不是这个数字的,但也认为这个数字,就像别人说的租房子,就是地址,不管谁住,只要有地址,就能找到人,即使换人也不管,直管这个地址
但传值就不同了,和上面的正好不同,只要数字,就像租房子的人一样,只记录人名(不允许重名),就能找到

明白吗?????
byval
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
JINYUTTT
2011-07-04 · TA获得超过178个赞
知道小有建树答主
回答量:792
采纳率:0%
帮助的人:548万
展开全部
很大。传值传址可能改变当前的值。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式