10万课题经费报完:VB问题,高手来帮一下

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/28 13:06:05
private x as integer
private sub command1_click()
x=5
y=3
proc x,y
print x,y
end sub
private sub proc(byval a as integer,byval b as integer)
x=a*a
y=b+b
end sub
运行答案是25和3
但我怎么笔算都是25和6
请高手指点一下思路,我可能还没掌握传值是怎么回事

因为你并没有声明y变量
在command1_click的y和proc中的y只是同名而已,其实并不是同一个变量
你的代码就相当于:
private x as integer
private sub command1_click()
dim y as interger '*****
x=5
y=3
proc x,y
print x,y
end sub
private sub proc(byval a as integer,byval b as integer)
dim y as interger '*****
x=a*a
y=b+b
end sub

你在print的时候只是command1_click中y的值

你没给Y设置是什么变量,肯定在传值过程中它是系统默认的变量,与整型变量一样,故Y就是原始值了,而B则是O