vb 实参和形参的问题
PrivateSubproc1(xAsInteger,yAsInteger,zAsInteger)x=3*zy=2*zz=x+yEndSubPrivateSubComma...
Private Sub proc1(x As Integer, y As Integer, z As Integer)
x = 3 * z
y = 2 * z
z = x + y
End Sub
Private Sub Command1_Click()
Dim x As Integer, y As Integer, z As Integer
x = 1: y = 2: z = 3
Call proc1(x, x, z)
Text1.Text = x & ";" & y & ";" & z
End Sub
结果为什么是 6;2;12 ?
CALL PROC1(1,1,3)
也就是在proc1过程里x=1,y=1,z=3不对吗
乘出来因该是9;6;15呀. 展开
x = 3 * z
y = 2 * z
z = x + y
End Sub
Private Sub Command1_Click()
Dim x As Integer, y As Integer, z As Integer
x = 1: y = 2: z = 3
Call proc1(x, x, z)
Text1.Text = x & ";" & y & ";" & z
End Sub
结果为什么是 6;2;12 ?
CALL PROC1(1,1,3)
也就是在proc1过程里x=1,y=1,z=3不对吗
乘出来因该是9;6;15呀. 展开
3个回答
展开全部
Private Sub proc1(x As Integer, y As Integer, z As Integer)
x = 3 * z
y = 2 * z
z = x + y
End Sub
给你讲解一下啊:1 1 3实际是X,X ,Z
x=3*z x确实是9
y=2*z,由于对应的实际参数还是X,所以导致参数X都是6了,也就是说现在实际参数X已经等于6
所以Z=X+Y等价于Z=6+6=12
因此,调用完函数后,X=6,Y一直没有变化还是2,Z=12,不知道这样说,你明白不明白
x = 3 * z
y = 2 * z
z = x + y
End Sub
给你讲解一下啊:1 1 3实际是X,X ,Z
x=3*z x确实是9
y=2*z,由于对应的实际参数还是X,所以导致参数X都是6了,也就是说现在实际参数X已经等于6
所以Z=X+Y等价于Z=6+6=12
因此,调用完函数后,X=6,Y一直没有变化还是2,Z=12,不知道这样说,你明白不明白
展开全部
Private Sub proc1(x As Integer, y As Integer, z As Integer)
x = 3 * z
y = 2 * z
z = x + y
End Sub
Private Sub Command1_Click()
Dim a As Integer, b As Integer, c As Integer
a = 1: b = 2: c = 3
Call proc1(a, b, c)
Text1.Text = a & ";" & b & ";" & c
End Sub
你运行一下试试,结果是你要的,我觉得变量定义的问题,按道理是可以的,不知道为什么会有这样的结果,是不是有编译器的开关设置,我不知道。
参考吧。
x = 3 * z
y = 2 * z
z = x + y
End Sub
Private Sub Command1_Click()
Dim a As Integer, b As Integer, c As Integer
a = 1: b = 2: c = 3
Call proc1(a, b, c)
Text1.Text = a & ";" & b & ";" & c
End Sub
你运行一下试试,结果是你要的,我觉得变量定义的问题,按道理是可以的,不知道为什么会有这样的结果,是不是有编译器的开关设置,我不知道。
参考吧。
追问
运行过了。。。
我才问的。。。
追答
你看到了吗,我把command事件里面的变量名称换了,结果就是你想要的了
我觉得是不是这样定义的变量会有冲突???按说不会,但我也想不出什么道理
你试试我那段程序
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
传错参数了,第二个
更多追问追答
追问
?
追答
传两个X了,没看着呀
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询