VB script 编程 结果是12:5:28 这个28是怎么的出来的 谢谢

来源:百度知道 编辑:UC知道 时间:2024/06/20 12:17:33
dim a,b
function abc(byval a,byref c)
a=a+1
b=b+1
c=c+a+b
abc=a*2
end function
a=5:b=10
response.write abc(a,b)
response.write ":" & a & ":" & b

a是传值,c是b的引用,对c的改变就是对b的改变,

abc(a_,b)
a_=a_+1 ; a_=6
b=b+1 ; b=11
c=c+a_+b ;c=b=11+6+11 =28 ======>b在这改变了
abc=a_*2 ;abc=12

a_区别于外部的a,只在初始时与a同值,a在外部没有 改变

都是byref 的问题,
你调用abc时将b值直接发过去对不?
接下来在abc里面的b还是你的b,不过c也是你的b
所以整理下来:

b的值 行
10 a=5:b=10
10 response.write abc(a,b) > function abc(byval a,byref c)
10 a=a+1
11 b=b+1
11+6+11 c=c+a+b
28 abc=a*2
28 end function

response.write abc(a,b) 传参时是b
函数abc 中 C参数是按址传递~ByRef c 所以其值会改变原来这个b变量
C=28 所以就输出5:28