注册 登录
编程论坛 VB6论坛

求助大神,vb小白简单编程题

madahaa 发布于 2018-06-27 00:29, 1054 次点击
只有本站会员才能查看附件,请 登录

a=11   c=29,但b为什么是20,而不是40,答案错了吗?好纠结
2 回复
#2
wmf20142018-06-27 08:59
传值和传址的区别。VB默认函数参数传递类型是传址(byref),所以函数fun形参y的变化会影响到实参a的值,而形参x传递类型为byval,它无论如何改变都不影响实参b的值。
#3
wufuzhang2018-06-27 09:06
答案没错。
fun(ByVal x As Integer,y As Integer)里面,ByVal以传值方式传递参数,默认不写是以ByRef传地址方式传递参数,
所以调用函数好,x的值不改变,y的值改变(因为y地址给了函数,函数可以直接修改y的值),
所有b的值没有改变,还是20,a的值改变为11
1