展开全部
这个是定义静态变量。
相对的,如果用“dim”定义的就是动态变量。
如果是定义静态变量的话,当事件结束后,变量的值依然是保存了过程结束时的值。
譬如:
动态变量的话:
Private Sub Command1_Click()
Dim n As Integer
n = n + 1
Print n
End Sub
(每次进入的时候n的值都刷新为0,所以每次打印的结果都是1)
如果是静态变量的话:
Private Sub Command1_Click()
Static n As Integer
n = n + 1
Print n
End Sub
(每次完成单击事件后,值被保存了,所以每次打印的结果都增加1)
相对的,如果用“dim”定义的就是动态变量。
如果是定义静态变量的话,当事件结束后,变量的值依然是保存了过程结束时的值。
譬如:
动态变量的话:
Private Sub Command1_Click()
Dim n As Integer
n = n + 1
Print n
End Sub
(每次进入的时候n的值都刷新为0,所以每次打印的结果都是1)
如果是静态变量的话:
Private Sub Command1_Click()
Static n As Integer
n = n + 1
Print n
End Sub
(每次完成单击事件后,值被保存了,所以每次打印的结果都增加1)
展开全部
在定义变量前,加上关键字static,该变量就被定义成为一个静态变量。对于一个完整的程序,在内存中的分布情况如下图:
代码区
全局数据区
堆区
栈区
一般程序的由new产生的动态数据存放在堆区,函数内部的自动变量存放在栈区。自动变量一般会随着函数的退出而释放空间,静态数据(即使是函数内部的静态局部变量)也存放在全局数据区。全局数据区的数据并不会因为函数的退出而释放空间。也就是说如果你在函数内部使用static关键字定义变量,那么此变量是放在全局数据区,在函数结束后,并不释放,而是等整个程序结束后才释放。比如你在一个COMMAND控件的事件响应里定义一个静态整形变量,每次加1,那么就可以实现纪录此按钮共按了几下。
代码区
全局数据区
堆区
栈区
一般程序的由new产生的动态数据存放在堆区,函数内部的自动变量存放在栈区。自动变量一般会随着函数的退出而释放空间,静态数据(即使是函数内部的静态局部变量)也存放在全局数据区。全局数据区的数据并不会因为函数的退出而释放空间。也就是说如果你在函数内部使用static关键字定义变量,那么此变量是放在全局数据区,在函数结束后,并不释放,而是等整个程序结束后才释放。比如你在一个COMMAND控件的事件响应里定义一个静态整形变量,每次加1,那么就可以实现纪录此按钮共按了几下。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个好象是静态变量.学了好久了.好象是的.
至于详细的东西你可以到www.jzxue.com 建站学 网站下载一个VB的视频教程或者文字教程.可以系统的进行学习
至于详细的东西你可以到www.jzxue.com 建站学 网站下载一个VB的视频教程或者文字教程.可以系统的进行学习
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询