vb程序理解,每一个步奏的意思,还有为什么答案是sub:2 6 4 (回车符)main:2 2 3

2025年02月23日 13:43
有2个网友回答
网友(1):

这是因为VB中过程的调用中参数传递方式,如果不显式说明传址还是传值,默认是传址。但是如果传递的是一个表达式(包含运算符,或者用圆括号括起),就以传值方式调用。
在程序中,第一个参数是传址的,所以,在过程中改变的变量会影响主程序中a1的变量值;而第二、第三个参数是传值的,所以,过程中变量值的改变不会影响到主程序中相应的变量值(主程序中的变量值b1、c1,不会因过程调用而改变)
private sub test(p,m,n)
p=p+1:m=m+1:n=n+1
print"sub:";p;m;n
end sub
private sub command 1_click()
a1=1:b1=2:c1=3
call test(a1,b1+3,(c1))
print"main:";a1;b1;c1
end sub

网友(2):

本题主要考察:传值与传地址,传值的变量值不会被改变,传地址值的变量值会被改变。
本题call test(a1,b1+3,(c1))中a1是传地址的,b1+3和(c1)是传值的。