jsun319 发表于 2008-7-3 11:42

求助FUNCTION 的形参问题

<%
function abc(m)
  m=m+1
  n=n+1
  abc=n+m
response.write("n="&n&"<br>")
response.write("m="&m&"<br>")
end function
n=5
response.write n&":"&abc(n)
%>
以上运行结果为m=7 n=7 5:14,请问为什么m和N的值为7而不是6呢?

icecool 发表于 2008-7-3 14:47

你像下面这样看一下就清楚了:

<%
function abc(m)


response.write("0.<br>")
response.write("n="&n&"<br>")
response.write("m="&n&"<br><br>")



m=m+1                                '此时m=n,m加1时,n也加是
response.write("1.<br>")
response.write("n="&n&"<br>")
response.write("m="&n&"<br><br>")

n=n+1                                '此时n加1,m也加1      
response.write("2.<br>")
response.write("n="&n&"<br>")
response.write("m="&n&"<br><br>")


  abc=n+m
response.write("3.<br>")
response.write("n="&n&"<br>")
response.write("m="&m&"<br><br>")
end function
n=5
response.write n&":"&abc(n)&"<br>"

%>

zhangyao3287 发表于 2008-7-4 17:05

这里function也可以继承n=5么?

multiple1902 发表于 2008-7-4 22:37

你这个function里的m是传值方式(ByVal),将原来的m参数复制一份传到function内部,内部修改后原来的m不会变。
涉及到编程的基础知识。

页: [1]

编程论坛