设有如下通用过程:
Public Function f(x As Integer)
Dim y As Integer
x = 20
y = 2
f = x * y
End Function
在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程:
Private Sub Command1_Click()
Static x As Integer
x = 10 
y=5
y = f(x)
Print x; y
End Sub
程序运行后,如果单击命令按钮,则在窗体上显示的内容是
A)10 5 B)20 5
C)20 40 D)10 40y=f(x)使x的值变为20了吗?

解决方案 »

  1.   

    x的值在函数f(x)执行时被重新赋值了
      

  2.   

    在VB中默認的參數傳遞方式為ByRef,即引用方式傳遞,如果你想x的值不變可以這樣寫:
    Public Function f(ByVal x As Integer)
    Dim y As Integer
    x = 20
    y = 2
    f = x * y
    End Function....
    y = f(ByVal x)
    ...
      

  3.   

    VB默认的传值类型是byref,你看把函数改为以下形式结果就是10 :40了
    Public Function f(Byval x As Integer)
    Dim y As Integer
    x = 20
    y = 2
    f = x * y
    End Function
    Private Sub Command1_Click()
    Static x As Integer
    x = 10
    y = 5
    y = f(x)
    Print x; y
    End Sub