asp vb输出值疑问

来源:百度知道 编辑:UC知道 时间:2024/06/25 22:35:09
题目详细:
看下面程序,说出输出结果:

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

答案:

12:5:28

为什么b的输出为28

因为abc()函数的参数c是按地址传递的,所以b的值就是函数内部c的值
a=a+1=6
b=b+1=11
c=c+a+b=11+6+11=28 '这里c的值就是b传递过来的值

如果这样
function abc(byval a,byval c)

输出就是 12 :5:11
而且函数内部的c的值是10+6+11=27

因为b是全局变量,而且在函数abc的第二个参数c使用的是byref也就是传址的方式,所以当第一次执行过abc函数之后,全局变量b已经改变