+ -
当前位置:首页 → 问答吧 → 输出的结果怎么这样啊??高人指点。

输出的结果怎么这样啊??高人指点。

时间:2011-07-31

来源:互联网

Private Sub Command1_Click()
  Dim a As Integer
  Dim b As Integer
  a = 8
  b = 12
  Print fun(a, b); a; b


End Sub

Private Function fun(ByVal a As Integer, b As Integer) As Integer
  a = a Mod 5
  b = b \ 5
  fun = a
End Function
我认为是3,3,2
但是输出的是3,8,2
怎么回事??
高人指点。

作者: QQ472152323   发布时间: 2011-07-31

楼主基础没有打好,难道你不知道函数fun中a是传值,也就是传a的一个副本?你做了运算,但不是对a做运算,是对其副本做运算
要想达到你的目的,参考如下代码:

VB code

Option Explicit

Private Sub Command1_Click()
  Dim a As Integer
  Dim b As Integer
  a = 8
  b = 12
  Print fun(a, b); a; b
End Sub

Private Function fun(ByRef a As Integer, b As Integer) As Integer
  a = a Mod 5
  b = b \ 5
  fun = a
End Function


作者: Veron_04   发布时间: 2011-07-31

Byval 
按值
一种将参数值而不是将地址传递给过程的方式,这就使过程访问到变量的复本。结果,过程不可改变变量的真正值。



ByRef
按地址
一种将参数地址而不是将值传递给过程的方式,这就使过程访问到实际的变量。结果,过程可改变变量的真正值。除非另作说明,否则按地址传递参数。

作者: Veron_04   发布时间: 2011-07-31

热门下载

更多