VB 全局变量问题:麻烦解释一下运行过程,以及说明结果为什么是9 1 4 9(很急,在线等!)

PublicaAsInteger,bAsInteger,cAsIntegerPrivateFunctions()AsIntegerDimaAsInteger,bAsInt... Public a As Integer, b As Integer, c As Integer
Private Function s() As Integer
Dim a As Integer, b As Integer
a = a * a
Me.b = Me.b * Me.b
c = c * c
s = a + b + c
End Function

Private Sub Form_Click()
Dim sum As Integer
a = 1: b = 2: c = 3
sum = s()
Print sum; a; b; c
End Sub
展开
 我来答
tianqing20wen

推荐于2016-02-08 · TA获得超过2.4万个赞
知道大有可为答主
回答量:8226
采纳率:88%
帮助的人:5145万
展开全部
过程内有定义的变量和全局变量同名的 作为局部变量处理 s函数过程内的a,b即为局部变量
Me.b = Me.b * Me.b 因为有指明对象是本窗体的b 非s过程内的b 所以 全局变量b=2*2=4

c=3*3=9
s=0+0+9=9

sum=s
print 9,1,4,9
RunnerChin
2015-06-28 · TA获得超过1833个赞
知道大有可为答主
回答量:1542
采纳率:100%
帮助的人:1544万
展开全部
因为你在Function s里定义了a和b,所以在这中间出现的所有a 和 b都是该函数范围内定义的a,b
me.b 使用的是public变量b
因为函数里没定义 c,所以c就是public变量c
sum=s
a=a*a (a=0 函数内的a)
me.b=me.b^2 (public b=2^2=4)
c=c*c(public c , c=9)
s=a(private, 0) + b(private, 0) + c(public 9)
所以 返回值 是1 4 9
追问
s=a(private, 0) + b(private, 0) + c(public 9)
为什么a(private, 0)、b(private, 0)????详细一点,我是新手,谢谢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式