大和x卡卡西r18漫画:VB,VB,关于VB的一道问题~~帮~~

来源:百度文库 编辑:中科新闻网 时间:2024/05/06 10:25:30
Private Sub Command1_click()
Dim a As Integer
a=2
For i=1 to 3
Print G(a)
Next i
End Sub
Function G(a As Integer)
b=0
Static c
b=b+1
c=c+1
G=a+b+c
End Function
求运行后,单击命令按钮的输出结果是什么?答案是4、5、6,我看不太懂这个程序,也不知道答案是怎样得来的?希望知道的能讲解得稍微详细点,谢谢了!辛苦了!

在函数或子程序里定义 Static c
相当于 窗体级的或是 public的
就是一直有效

a=2
-------------

i=1 时
b=0
Static c '才定义 为0
b=1
c=c+1=1
G=a+b+c=2+1+1=4

输出 4
---------------------

i=2 时
b=0
Static c '保留原来的值1
c=c+1=2
G=a+b+c=2+1+2=5

输出 5
---------------------

i=3 时
b=0
Static c '保留原来的值2
b=1
c=c+1=3
G=a+b+c=2+1+3=6

输出 6
---------------------

static c 这一句是关键
每次循环到 G() 中时:
b = b + 1 都是不变的即 b = 1;
而 c 因为是 static 类型所以才是真正的每次 + 1;
至于 a ,每次都是 2,没有变化的地方!
static 修饰静态变量,类似将局部变量变成特殊的全局变量!