一道VB初学者的题目
SubS1(ByValxAsInteger,ByValyAsInteger)DimtAsIntegert=xx=yy=tEndSubPrivateSubCommand1_...
Sub S1(ByVal x As Integer, ByVal y As Integer)
Dim t As Integer
t = x
x = y
y = t
End Sub
Private Sub Command1_Click()
Dim a As Integer, b As Integer
a = 10
b = 30
S1 a, b
Print "a="; a; "b="; b
End Sub
应该是S1函数把a和b的值换了 为什么显示出来的没有换? 展开
Dim t As Integer
t = x
x = y
y = t
End Sub
Private Sub Command1_Click()
Dim a As Integer, b As Integer
a = 10
b = 30
S1 a, b
Print "a="; a; "b="; b
End Sub
应该是S1函数把a和b的值换了 为什么显示出来的没有换? 展开
5个回答
展开全部
vb不太熟
但是你调用S1的时候传进去的参数实际上是a 和 b的值
在S1中更改x y的时候对ab本身没有任何影响
所以ab实际上没有改变
咋改我不太熟
但是你调用S1的时候传进去的参数实际上是a 和 b的值
在S1中更改x y的时候对ab本身没有任何影响
所以ab实际上没有改变
咋改我不太熟
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
S1(ByVal x As Integer, ByVal y As Integer)
中去掉ByVal
中去掉ByVal
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你再看看课本中子函数调用的过程。
按址传送和按值传送
把byval改为byref即可
按址传送和按值传送
把byval改为byref即可
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你这函数是按值传递,不是按地址传递;过程改成:Sub S1(ByRef x as interger, byref y as interger)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询