设有如下程序代码:
Private Sub Command1_Click()
Dim x As Integer
x = 30
Print f(x) + f(x)
End Sub
Private Function f(a AsInteger) As Integer
a = a / 3
f = a
End Function
运行Command1_Click过程所产生的输出是
A) 13
B) 20
C) 30
D) 6
【解析】VB默认的参数传递方式是按地址传递。第1次调用函数f(x)时x=30,故f(30)=10,此时a的值为10,x的值为10,函数调用结束时,a被释放,第2次调用函数f(x)时,x=10,故f(10)=3,所以f(x)+f(x)=f(30)+f(10)=13。故正确答案为选项A。
我觉得应该选B,dim定义的变量不是一遇到end sub就释放了吗
Private Sub Command1_Click()
Dim x As Integer
x = 30
Print f(x) + f(x)
End Sub
Private Function f(a AsInteger) As Integer
a = a / 3
f = a
End Function
运行Command1_Click过程所产生的输出是
A) 13
B) 20
C) 30
D) 6
【解析】VB默认的参数传递方式是按地址传递。第1次调用函数f(x)时x=30,故f(30)=10,此时a的值为10,x的值为10,函数调用结束时,a被释放,第2次调用函数f(x)时,x=10,故f(10)=3,所以f(x)+f(x)=f(30)+f(10)=13。故正确答案为选项A。
我觉得应该选B,dim定义的变量不是一遇到end sub就释放了吗