(2)Call p(x, (y))
先看第(1)句,定义的过程p()包含两个参数,其中n是传值的,m是传址的。
再来看第(2)句,调用时,x变量的值传递给n(传值)。如果y不加括号,则是传址给m;现在给y又加上了括号,则y也是传值给m的了。这是y单独加不加括号的的区别。
现在回答你的疑问:“难道是说p(x, (y))都是给n传值吗?”
答:因为变量x对应n参数,所以给n传值与y加不加括号没有关系。之后以n是传值,是因为定义过程时的说明(参见在第(1)句中byval)。
x=12 : y=32:给x和y赋值Call p(x, y) :调用函数p,将x及y代进去进行计算
MsgBox x*y:输出经过函数p后的x*y的值:2*32=64
Public Sub p (n As Integer, ByVal m As Integer):ByVal的大概意思是使m保持一开始被赋予 的值
n=n Mod 10 :Mod是求余数的意思,把x代进去就得到了2
m=m Mod 10:把y代进去,但是因为m前面有ByVal所以结果还是32
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)