发新话题
打印

[问题]请问以下代码如何不同?运行时结果为什么是一样的?

[问题]请问以下代码如何不同?运行时结果为什么是一样的?

Public Function f(x As Integer)                  
Dim y As Integer
x = 20
y = 2
f = x * y
End Function
Private Sub Command1_Click()
Dim 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
Private Sub Command1_Click()
Dim x As Integer
stastic x = 10
y = 5
y = f(x)
Print x; y
End Sub

第二段代码为什么不是输出:10  5  的?
谢谢回复!!!

TOP

stastic x = 10 这句有错误,是不是应当是 Static 呀
y=f(x)之后,y已经等于20了,x经过传值,x已经等10了

关于传值的问题,请参见
ByVal 可选的。表示该参数按值传递。
ByRef 可选的。表示该参数按地址传递。ByRef 是 Visual Basic 的缺省选项。
例如
[code:157f17faee]Public Function f(ByVal x As Integer)
    Dim y As Integer
    x = 20
    y = 2
   f = x * y
End Function

Dim x As Integer
stastic x = 10
y = 5
y = f(x)
Print x[/code:157f17faee]执行上面的结果后,x就等于10了

TOP

发新话题