| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 848 人关注过本帖
标题:为什么答案是这样?
只看楼主 加入收藏
dgg实在
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2016-7-15
结帖率:60%
收藏
已结贴  问题点数:18 回复次数:1 
为什么答案是这样?
如果在过程A中用语句:Call proc(a, b) 调用下面的过程
Private Sub proc(b As Integer, ByVal a As Integer)
    a = a + 1
    b = b * 2
End Sub
则调用结束后的结果是

过程A中变量a的值变为原有值的2倍
为什么???

2016-10-06 18:39
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4943
专家分:30067
注 册:2008-10-15
收藏
得分:13 
这个是考察你形参和实参的区别。
形参是写一个过程时定义的变量,这个变量在调用时,把实值的内容(地址或值)代进去。
形参的作用域为整个过程的生存周期。
在 proc 里,定义了二个形参,分别是 b ,a 。注意。
调用时,传了二个参数,分别是 a , b  。没写参数传递方式,根据VB默认的按地址传递,
根据形参的顺序,这里 在 proc 中, b=外部的a , a= 外部的b 。
过程中运算, b=b*2 ,对应参数就是 外部的a*2 。
所以最后结果 ,调用结束后, a 的值变成2倍。


授人于鱼,不如授人于渔
早已停用QQ了
2016-10-06 19:15
快速回复:为什么答案是这样?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015921 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved