易截截图软件、单文件、免安装、纯绿色、仅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 语句显式声明只在该过程内可见,但具有与包含该过程定义的模块相同生命期的变量。


理解变量的范


相关问答:

关于ASP.net(vb)播放监控录像的问题

我有厂家做的ASP的监控录像(DVR)的局域网播放的源程序与控件,想要用ASP.net做一个视频回放的程序(利用他的控件)但不知如下去做,望各位指点。
先搞清楚他们的控件是怎么用的,
然后就直接用好了.
不过,如 ......

vb打印问题

大家好,问个vb打印问题


printer.print "dsff"
.....
....


Printer.EndDoc


打印成功后我将执行

sqlstr = "update vc_yh set pr=' 已打印 ', ......

vb adodb.stream write写入网页代码为utf8编码的问题

从网页通过inet控件的Inet1.GetChunk读取其代码,然后想转换为汉字,转换代码如下
Private Sub Inet1_StateChanged(ByVal State As Integer)
    Dim strRecText As String
    Dim st ......

如何用VB采集部分网页数据

要采集的页面:http://city.qzone.qq.com/html/user/searchpro.htm#mod=0&act=city&cd=120000&pg=1

我想把搜索出来的QQ都采集出来,该怎么做。看了下代码好像不是普通的那种,网址里把1改成2没用 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号