vb byval的题,哪位高手解答一下,是不是题目有问题。

1. Sub c(ByVal x As Integer, ByRef y As Integer, ByRef m As Integer, ByVal n As Integer)
m = x * y: n = x / y
End Sub
Private Sub Command1_Click()
Dim i As Integer, j As Integer, a As Integer, b As Integer
i = 2: j = 4: a = 6: b = 8
c j, i, a, b
Print a, b
End Sub

这是传值和传址的问题,byval是传值,在子过程中改变参数的值不会对传给的变量的值造成影响,byref 是传址,在子过程中改变参数的值会对传给的变量的值造成影响。
因为m是传址,所以执行m=x*y后m的值变为8,而n是传值,在子过程中改变其值不会对它造成影响。
所以最后输出的是8和8
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-01-07
结果应该是:8,8
相似回答