vb中为什么定义了全局变量以后就不一样了?

[复制链接]
查看11 | 回复4 | 2013-8-8 15:53:37 | 显示全部楼层 |阅读模式
Timer1_Timer 相当于一个大的Do循环,每隔若干时间就自动执行一次。不定义a,那么每次执行到第一步 a = a + 1 的时候,系统会重新定义变量a,且a的初始值始终为0(或者说为空),那么a = a + 1 就始终为1。其实这跟全局不全局没有关系,建议题主养成良好的编程习惯,在模块头加 Option Explicit 避免这类bug,强制声明所有变量。...
回复

使用道具 举报

千问 | 2013-8-8 15:53:37 | 显示全部楼层
所谓全局变量就是 在程序运行期间,它的值都将被保存。而局部变量,则是 所在过程结束后,这个变量的值将被释放,下次在进入该过程,会重新初始化。...
回复

使用道具 举报

千问 | 2013-8-8 15:53:37 | 显示全部楼层
不定义全局时它等于在事件中定义,所以每次就等于每次定义,定义一次等于0,a=a+1始终是0+1全局定义后a=a+1,等于每次事件触发都加1...
回复

使用道具 举报

千问 | 2013-8-8 15:53:37 | 显示全部楼层
因为你不定义为全局变量的的话,它的作用域仅在Private Sub Timer1_Timer()中,程序每次进入Private Sub Timer1_Timer()中之后都要将a初始化0,然后再加1,...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行