vb练习的一道题1 谢谢

来源:百度知道 编辑:UC知道 时间:2024/06/09 05:03:24
在窗体上加一命令按钮,其名称为Command1,然后编写以下程序代码:
Private Sub Command1_Click()
Dim a, d
a=10: b =20
Call mult((a), b)
Print a; b
End Sub
Private Sub mult(ByRef x As Variant, y As Variant)
x=x * 2
y= y * 3
End Sub
在程序运行过程中,单击命令按钮Command1,程序的输出结果为()
(A) 10 20 (B) 20 60 (C) 10 60 (D) 20 20

请问,结果为什么不是B,而是C

谢谢,稍微解释一下。

Call mult((a), b) 中"括号"()像运算符号一样会,会对他里面的东西进行进行计算, 把数值返回. 所以a无法完整ByRef 按值调用

Private Sub mult(ByRef x As Variant, y As Variant)
x=x * 2
y= y * 3
End Sub
写错
应该是
Private Sub mult(ByVal x As Variant, y As Variant)
x=x * 2
y= y * 3
End Sub

参数传递默认为传址(ByRef)
传址会改变形参的值,传值不会

在这个例子中 acd1024 的说法好像更确切点吧?