vb中function

来源:百度知道 编辑:UC知道 时间:2024/05/15 11:03:11
<script runat="server" language="vbscript">
call converttemp()
sub converttemp()
temp=inputbox("输入一个华氏温度",1)
msgbox"温度为"&celsius(temp)&"摄氏度"
end sub
function celsius(fdegrees)
celsius =(fdegrees -32)*5/9
end function
</script>
代码里面输入一个值赋给temp,可是下面定义celsius时候用fdegrees ?为什么不用temp ?temp的值自动给fdegrees?

确切地说是 temp的地址自动给fdegrees
fdegrees与temp的地址一样,两者等同
(不严格地说 可理解为 temp的值自动给fdegrees 但实际不太一样 虽然效果是如此)

vb默认的是按地址传递

调用这个函数时celsius(temp)

function celsius(fdegrees) 'temp的地址自动给fdegrees,fdegrees与temp的地址一样,两者等同,在这个时候,如果fdegrees的值在函数中变了,temp的值也会变
celsius =(fdegrees -32)*5/9
end function

如果是这么写
则和你理解的完全一样
temp的值自动给fdegrees(在这个时候,如果fdegrees的值在函数中变了,temp的值不变)
function celsius(ByVal fdegrees)
celsius =(fdegrees -32)*5/9
end function

靠啊 fdegrees是形参 temp是实参 调用的时候默认是temp直接传值 要是有声明fdegrees的话它可以传地址~~~~ok 祝你vb愉快