ASP 自编函数中,变量的值的问题?

发布时间:2024-06-24 21:14 发布:上海旅游网

问题描述:

<%
dim n,c
function abc(n)
n=n+1
abc=n
end function

function abcd(c)
c=n+c+1
abcd=c+1
end function
n=5
response.Write("<br>")
response.write (n & ":" & abc(n) & ":<br>" )
response.write(n&"<br>")
response.Write(abcd(n))
response.Write("<br>"&n&"<br>")
%>

为什么最后N的值为13呢?N的值只有函数abc中参与了计算啊!
首先谢谢Pur_e的回答。
但是我还没明白,N的最后的值是在那个过程被改变了的。
根据我的想法,N的值应该是在函数abc中被附值为6,函数abcd只是使用了N的值,并没做改变啊。
能再给我详细讲解下吗?谢谢!

问题解答:

我下面说了这一些,意思就是函数默认传值方式是ByRef,而这种传值方式意思就是:拿你这个做例子吧,response.Write(abcd(n))
这里调用时把n传进去,而在这function abcd(c)
只是给n起了另一个名字叫c,你改变c的值c=n+c+1
后,n的值也会改变的

你可以去查一查,asp 传值方式

测试了一下,最终结果是13

首先明确几点
1、ByVal传值不会改变全局变量的值。
2、ByRef传值会改变全局变量的值。
3、系统默认的是ByRef传值。

如果改成
function abcd(ByVal c)
最终结果是6

测试结果是这样的

学习中

热点新闻