VB程序求解

[复制链接]
查看11 | 回复5 | 2011-2-23 14:13:04 | 显示全部楼层 |阅读模式
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
结果“0”是如何得出的

回复

使用道具 举报

千问 | 2011-2-23 14:13:04 | 显示全部楼层
1、因为X,Y是sub From_click的局部变量,因此在sub proc1中x,y的值为空值,因此,a,b为空值,Print a,b打印出2个0来。2、因为VB默认是按地址传递,因此a,b为空值导致其实参x,y也被更改为空值,因此,Print x,y为两个0.所以最终的答案为0
0
0
0
回复

使用道具 举报

千问 | 2011-2-23 14:13:04 | 显示全部楼层
proc1 里没有定义 x,y 所以 a =0 b=0因为proc1 的两个参数都是传址,所以a,b改变把Form_Click 中的 x,y也改成0 了
回复

使用道具 举报

千问 | 2011-2-23 14:13:04 | 显示全部楼层
在proc1函数中,X和Y为空值a=空值+空值=0 a=空值-空值=0Print a, b结果 0
0proc1里a.b 没有设参数类型所以x返回a,y返回b, a,b的值都为零Print x, y结果 0
0
回复

使用道具 举报

千问 | 2011-2-23 14:13:04 | 显示全部楼层
你的问题不对proc1方法里的X,Y是什么?在哪定义的?
回复

使用道具 举报

千问 | 2011-2-23 14:13:04 | 显示全部楼层
我觉得是逻辑问题-_-。 proc1里边的x,y没初始化,加减运算后结果就是0
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行