vb基础问题!
更多追问追答
追问
我想知道怎么算的
追答
''这里主要是变更的作用范围把你弄混了。
还有一个就是参数传递方式,有按值传递和按地址传递。
下面这样说,不知道你能不能看明白。
Dim x%, y%, z% '定义模块变量
Private Sub Command1_Click()
Print x, y, z
End Sub
Private Sub Form_Click()
Dim x As Integer '这个地方是个过程变量,为了区分把它叫做form_x
x = 1 '给过程变量赋值,为了区分把它叫做form_x
y = 2 '给模块变量赋值
Call AA(y + 1) 'CALL(3),调用时模块变量x=0,y=2,z=0
'到这里模块变量x=0,y=3,z=0,过程变量x(form_x)=1
z = BB(x) 'z=BB(1)=2 ''注意函数BB的参数传址方式,所以会影响到参数x
'到这里模块变量x=0,y=3,z=2,过程变量x(form_x)=2
Print x, y, z '这里显示的x的值是过程变量(form_x)的值,y是模块变量y的值,z是模块变量的值
End Sub
Public Sub AA(ByVal z%) '这里的z同样是个过程变量,为了区分我们把它叫做AA_z,调用时将它赋值为3
y = z + x '这时的y是模块变量,z是过程变量(相当于AA_z),x=0为模块变量
'所以y=z+x=AA_z+x=3+0=3
'到这里模块变量x=0,y=3,z=0
z = x + y '这里的z是过程变量(相当于AA_z),所以这一步完成后对于模块变量x,y,z没有影响
'到这里模块变量x=0,y=3,z=0
End Sub
Public Function BB(y%) '这里的y同样是个过程变量,为了区分我们把它叫做BB_y,调用时将它赋值为1
y = y + 1 '相当于BB_y=BB_y+1=2
BB = x + y 'BB=x+BB_y=0+2=2,也就是此函数返回2
End Function
''好累,最后做个广告可不可以>>http://www.pianyiji.com
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询