易截截图软件、单文件、免安装、纯绿色、仅160KB

vb static

Private Sub fun()
  Static a As Integer
      A=a+1
  Print a;
End Sub
    Private Sub Command1_Click()
      Dim m As Integer
      For m=1 To 3
        Call fun
      Next m
End Sub

最后结果是1 2 3
但其中不是有Static a As Integer吗
它的意思不是代表每次调用fun()都是因为Static这个而使a的初值为0吗?这样就应该是1 1 1 了啊
static只是第一次初始化时使a为0
后面a的值就不是0,而是一直保存着了
第一次a=1
保留到下次a=a+1=1+1=2
同理第三次为3

Dim X
  Private Sub Form_Click()
X = 2
For K = 3 To 5
  AB
  s = s + X
Next K
Print s
  End Sub
  Private Sub AB()
Dim X
X = X + 2
  End Sub

根据这个看又好像是dim才是每次调用AB()都是因为dim这个而使x的初值为0
到底是dim还是static每次被调用时使其函数内的变量的初值为0呢

LZ:你的理解是错误的:
Static 语句
在过程级别中使用,用于声明变量并分配存储空间。在整个代码运行期间都能保留使用 Static 语句声明的变量的值。

说明
模块的代码开始运行后,使用 Static 语句声明的变量会一直保持其值,直至该模块复位或重新启动。可以在非静态的过程中使用 Static 语句显式声明只在该过程内可见,但具有与包含该过程定义的模块相同生命期的变量。


理解变量的范


相关问答:

vb打印问题


Printer.ScaleMode = 6
6表示毫米
Printer.PaperSize = vbPRPSA4

'初始坐标
x = 1
y = 4


'最大的线筐
Printer.DrawStyle = 0
Printer.Line (x, y)-(x + 132.5, y) ......

vb如何调用Illustrator(此前Illustrator未启动)?

请教一下:我用vb写了一个调用Illustrator的测试程序,代码很简单:Private Sub Command1_Click()
Dim app As New Illustrator.Application
Dim doc As Illustrator.Document
Dim thislayer As Illustrator.Layer ......

怎樣優化VB程式

由于窗體的增多;
明顯感覺程式運行慢了;
怎樣優化;
优化你的程序逻辑,比如将不用的窗体及时Unload,将不用的对象及时释放

引用
优化你的程序逻辑,比如将不用 ......

vb与access数据更新的问题

一个程序,两个窗口,一个用来更改access表数据(Form1),另一个窗口有个combo1用来显示数据(Form2)。form2有一个按钮(command1)用来打开form1。现在我先打开form2,combo1读取出数据,点击command1打开form1,更改数 ......

VB/VB.Net如何实现用Label在不同位置移动的效果?

还记得上微软网站更新系统补丁时,每当勾选一个升级项时,在当前勾选的位置会出现一个带文字的黑框平滑的飞向已选数量的位置上并加1,当取消勾选时以相反的方向从已选数量的位置上飞回并减1,这个效果动感有个性,现 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号