注册 登录
编程论坛 VB6论坛

VBVBVB求各路大神解救!

zzz123456789 发布于 2013-05-17 15:17, 361 次点击
把其中代码Static x As Integer修改为DIM x As Integer,再观察结果是否有变化,为什么?
Private Sub Command1_Click()
 Static x As Integer
 x = 10
 y = 5
 y = f(x)
 Print x; y
End Sub
Public Function f(x As Integer)
 Dim y As Integer
 x = 20
 y = 2
 f = x * y
End Function
1 回复
#2
风吹过b2013-05-17 17:03
结果 无变化。
Static  申明的变量在 函数非执行时将得到保留。
dim 申明的变量,仅在函数执行时才得以创建。
Private Sub Command1_Click()
Static x As Integer
x = 10
y = 5
y = f(x)
Print x; y
End Sub
在这个过程中,不管X 是怎么定义的,第一个执行命令 给了 X 一个新值。无法体现 函数体未执行时,该变量还存在的结果。
Public Function f(x As Integer)
Dim y As Integer
x = 20
y = 2
f = x * y
End Function
在此函数中,X 是形参,根据VB默认的地址传递,在调用时,修改形参的值,也就是实际修改 前面一个过程中 X 的值。

最后,不管 X 是用 Static 定义,还是用 Dim 定义,该过程执行结果都是输出
 20     40
1