在窗体中添加一个名称为Command1的命令按钮,然后编写如下事件代码

Private Sub Command1_Click()
Dim x As Integer, y As Integer
x = 12: y = 32
Call P(x, y)
MsgBox x*y
End Sub
Public Sub P(n As Integer, ByVal m As Integer)
n = n Mod l0
m = m Mod l0
End Sub
窗体打开运行后,单击命令按钮,则消息框的输出结果为__【11】__。
关键是为什么?

结果:64
这是一个很老的题目,就是函数在传递参数时候的2种方式。
ByVal就是值的传递。就是把Y的值12给变量m,m的改变与Y没有任何关系,虽然M=M mod 10=2,但是Y还是32.
而默认的是传地址(引用),后面的n和X都是指向的内存里的同一个位置,这样n如果改变的话,X也就变了。所以n Mod 10=2 这句话后X就等于2了。
完整的应该是:
Public Sub p (ByRef n As Integer,ByVal m As Integer)
……
End Sub
温馨提示:答案为网友推荐,仅供参考