VB程序题

[复制链接]
查看11 | 回复3 | 2011-2-23 10:30:22 | 显示全部楼层 |阅读模式
执行下面程序,打印的第一行结果是
;第二行结果是
。若将Sub语句改为:

Private Sub proc1(Byval a As Integer, Byval b As Integer)
那么,执行后第一行结果是
;第二行结果是:

Private Sub Form_Click()

Dim x As Integer, y As Integer

x = 3

y = 2

Call proc1(x, y)

Print x, y
End Sub
Private Sub proc1(a As Integer, b As Integer)

a = x + y

b = x – y
Print a,b
End Sub

回复

使用道具 举报

千问 | 2011-2-23 10:30:22 | 显示全部楼层
这是vb参数传递的基本知识不加Byval 默认的是ByrefByref 是传址,就是把变量的地址传送给函数,在函数的内部对参数的修改,实际上是对变量地址里的数据修改,所以当函数返回的时候,传进来的变量也是跟着改变的Byval 是传值,顾名思义,就是把变量的数据传给函数,函数内部对其做任何处理都不会影响变量本身的值 程序有问题吧,后面Private Sub proc1(a As Integer, b As Integer)
a = x + y
b = x – yPrint a,bEnd Sub是不是写错了??
回复

使用道具 举报

千问 | 2011-2-23 10:30:22 | 显示全部楼层
,打印的第一行结果是
0,0;第二行结果是 3,2若将Sub语句改为:
Private Sub proc1(Byval a As Integer, Byval b As Integer) 那么,执行后,打印的第一行结果是
0,0;第二行结果是 3,2
回复

使用道具 举报

千问 | 2011-2-23 10:30:22 | 显示全部楼层
是考按值或按地址传送的问题0 00 0改为 Byval0 03 2
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行