想请高手解答这个vb题目,谢谢,在线等,求解析

 我来答
tianqing20wen

2015-07-11 · TA获得超过2.4万个赞
知道大有可为答主
回答量:8226
采纳率:88%
帮助的人:5058万
展开全部
因为x是窗体级变量 窗体内任意处改变x值 所有过程内都会随之改变
x=5*5=25
y没有定义窗体级变量 只是局部变量 2个过程内的y 属于不相同的变量
Command1_Click()里的y还是3

Private Sub proc 里的y =3+3=6
答案B
追问
谢谢
无线电_刘
2015-07-11 · TA获得超过155个赞
知道小有建树答主
回答量:216
采纳率:60%
帮助的人:147万
展开全部

答案 A

传值由2种方式 byval byref

byval

按值传递参数
按值传递参数时,传递的只是变量的副本。如果过程改变了这个值,则所作变动只影响副本而不会影响变量本身。用 ByVal 关键字指出参数是按值来传递的。

Function s(ByVal a As Integer)  'a不会改变
a = a + 1
End Function

byref

按地址传递参数
按地址传递参数使过程用变量的内存地址去访问实际变量的内容。结果,将变量传递给过程时,通过过程可永远改变变量值。按地址传递参数在 Visual Basic 中是缺省的。

Function ss(ByRef a As Integer) 'a改变 变成 a+1值
a = a + 1
End Function
追问
答案选b
追答
不好意思被饶了一下,如上所述,  byval传入的值,a b不会改变
但是定义了全剧变量
x = a * a 'x定义了全剧变量,所以x的值是有效的
y = b + b 'y局部变量,y的值不能进行传递的,该值未改变

所以x= a*a y=y
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式