求vb过程解释,具体的做法,不要只是答案。

Dimx%,y%,z%PrivateSubForm_click()DimxAsIntegerx=1y=2CallAA(y+1)z=BB(x)Printx,y,zEndSu... Dim x% , y%,z%
Private Sub Form_click()
Dim x As Integer
x = 1
y = 2
Call AA(y + 1)
z = BB(x)
Print x, y, z
End Sub
Public Sub AA(ByVal z%)
y = z + x
z = x + y
End Sub
Public Function BB(y%)
y = y + 1
BB = x + y
End Function
求具体解题的步骤。
展开
 我来答
百度网友f7fee79f7
2013-06-22 · TA获得超过395个赞
知道小有建树答主
回答量:341
采纳率:0%
帮助的人:321万
展开全部
这里的难点在于主程序Sub Form_click()中定义了一个与窗体级变量同名的x变量。需要注意两个同名变量的作用域。同时,AA函数中的参数z,BB函数中的参数y,也是过程级变量,不影响到窗体级变量y,z的值。

另外,调用子程序过程中,AA是值传递,不影响回传值,BB会被当成引用传递,会影响调用函数时的变量的值。

执行call AA(y+1)这个时:相当于执行了 AA(3)
在AA中的运算是:y=z+x
此时,z是参数变量,传过来的是y+1=3,x是窗体级变量,为0,所以y=z+x执行的结果是y=3
z=x+y=3,这里的x仍然是窗体级的那个x
执行完AA(3)以后,y=3,z=3,窗体级的那个x=0,没有变化。
执行BB(x)时,相当于执行了BB(1),这里的x是主程序中定义的过程级变量x=1
在BB中,
y=y+1,这个y,是参数变量,因此,这个y值不影响窗体级的变量y。即y=1+1=2,同时,y作为函数参数,又会把值2回传给调用时的参数,即BB(x)中的x,此时,过程级的x=2。BB中的这个y,是参数变量,因此,这个y值不影响窗体级的变量y。
BB=x+y=0+2=2,这里的x还是窗体级那个x,主程序中定义的x变量,只在主程序过程中起作用。
BB=2,又将这个值传回给调用它的z,z=BB(x)
这样,最后的结果就是,print,x,是过程级的x,因为是在主程序中print的。y,z都是窗体级的变量。
x=2,y=3,z=2
chinaboyzyq
2013-06-22 · TA获得超过1.3万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:3269万
展开全部
你要想明白此题,你要去学习以下知识点:
1、全局变量与局部变量的关系
(过程或函数中有与全局变量同名变量时,同名全局变量对本过程或函数不可见)
2、参数的传值与传地址的区别
(传值原变量不会被改变,传地址原变量会被改变)
3、结果是2 3 2
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式