上海图书馆要办卡吗:VB问题,高手来帮一下

来源:百度文库 编辑:神马品牌网 时间:2024/05/08 18:34:42
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