爱问知识人 爱问教育 医院库

传值与传址

首页

传值与传址

Option Explicit
Private Sub Command1_Click()
Dim i As Integer, n As Integer
For i = 5 To 15 Step 2
    n = fun1(i, i)
    Print n
Next i
Print i
End Sub

Private Function fun1(ByVal a As Integer, b As Integer) As Integer
b = a + b
fun1 = a + b
End Function
这个程序在运行被调用过程后,循环控制变量i的值为什么是b的值而不是a的值呢?这和参数a,b的传送方式有关吗?急需答案!谢谢!

提交回答
好评回答
  • 2010-10-09 22:42:31
    有关
    VB默认传地址(byref)可以省略不写,传值的时候需要在参数前面加byval,
    Private Function fun1(ByVal a As Integer, b As Integer) As Integer 这个函数中参数a只是接收了i的值,是传值,然后在此函数中应用,而参数b接收的是i的地址,是传地址,参数b和i指向同一个地址,函数中参数的b发生改变,相当于原参数i发生了改变,所以后来输出的i的值是b的值。

    v***

    2010-10-09 22:42:31

类似问题

换一换
  • VB 相关知识

  • 电脑网络技术
  • 电脑网络

相关推荐

正在加载...

热点检索

  • 1-20
  • 21-40
  • 41-60
  • 61-80
  • 81-100
  • 101-120
  • 121-140
  • 141-160
  • 161-180
  • 172-191
返回
顶部
帮助 意见
反馈

确定举报此问题

举报原因(必选):