永发信息网

VB传值和传地址

答案:3  悬赏:50  手机版
解决时间 2021-05-10 11:53

有如下程序:
Private Sub Command1_Click()
Dim k As Integer, m As Integer
Dim p As Integer
k=4: m=1
p=PC(k, m) : Print p;
p=PC(k, m) : Print p
End Sub
Private Function PC(a As Integer, b As Integer)
Static m As Integer, i As Integer
m=0: i=2
i=i + m + 1
m=i + a + b
PC=m
End Function
程序运行后,输出的结果为
A) 4 6
B) 6 6
C) 8 8
D) 10 12

求高手详细解释过程,希望通俗易懂,不然偶看不懂。。

谢谢。。

最佳答案

简单点解释下传址和传值....


我们打个比方,一个箱子A,里面放了苹果


传值:


就相当于准备另外一个箱子B,然后把箱子B里面放上跟箱子A里面一样的苹果,


无论你怎么改变箱子B里面的苹果数量,都不会影响到箱子A里的数量



传址:


是给箱子A多贴一个标签,箱子B,这时候,箱子A和箱子B都是一个箱子,如果你改变箱子A的苹果数量,那么箱子B的数量也跟着变....



够通俗了吧.....



VB里面 byval 传值 byref传地址, 默认传地址



另外,你这个例子里面,参数传递都是传址的,要注意function PC 里面的m是用static声明的静态变量...



所谓静态变量,可以理解为只能在局部使用的全局变量,该变量里面的内容不会因为跳出过程而消失




回答完毕

全部回答

C===8,8

第一次p=PC(k, m)

i=i + m + 1

=2+0+1

=3

m=i + a + b

=3+4+1

=8

第二次

p=PC(k, m)

i=i + m + 1

=2+0+1

=3

m=i + a + b

=3+4+1

=8

C

第一次p=PC(k, m) i=i + m + 1=2+0+1=3

m=i + a + b=3+4+1=8

第二次p=PC(k, m) i=i + m + 1=2+0+1=3

m=i + a + b=3+4+1=8

我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
心不在跳动了,会是什么人?
phpcms header.html在哪个目录
叮咛的近义词是,叮属的近义词是什么
梦幻诛仙青云怎样加点,玩梦诛的朋友你们QQ多
被上过的心还可以爱谁?
当一个男人曾今对你海誓山盟,现在却对你熟视
游戏人生 别人邀请过了 在哪激活?
没有感情的婚礼能幸福吗?
家国情怀的诗歌题目,有最坚定的家国情的诗句
什么是三猪?还有说“玩三猪”是啥意思?
善人给我一个哈奇小镇体验码
诛仙2如何升级快
要几个英文名字
有什么方法能挣得快又多的G币呢!谢谢…
谁给的NOD序列号?
推荐资讯
烽火战国如何很快的得到声望值?
华硕A42J能玩WLK吗
诛仙2神族什么职业群战PK厉害啊
为什么玩三国杀电脑温度会很高?
狮子座优点
乌龟吃些什么东西...两岁大的巴西龟...
急人所急!有谁知道烧鸡的制作方法啊?请多多
联想3000g430用什么程序不较好
室内【电】地暖好不???
人在青春期时,吃饭要注意哪些营养?
三角形的地亩数怎么算,三角形求底边的公式是
佩戴美瞳眼睛为什么痛?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?