注册 登录
编程论坛 ASP技术论坛

VBscript全局变量和局部变量的问题,帮忙解释一下这一小段代码

lightsout 发布于 2007-11-29 16:10, 2948 次点击
第一段代码:

<%
dim c
sub addone(n)
n=n+1
response.Write c&"<br/>"
end sub
c=5
response.Write c&"<br/>"
addone c
response.Write c
%>


输出结果是:5
                     6 (不明白)
                     6

第二段代码:
<%
dim c
sub addone(n)
n=n+1
response.Write c&"<br/>"
end sub
response.Write c&"<br/>"             '不同的部分
c=5
response.Write c&"<br/>"
addone c
response.Write c
%>


输出结果:(换行)  (不明白)
                    5           (不明白)
                    6           (不明白)
                    6


谁不怕麻烦帮忙解释一下,谢谢了!
3 回复
#2
yms1232007-11-29 17:26
VBscript全局变量和局部变量的问题,帮忙解释一下这一小段代码
第一段代码:

<%
dim c
sub addone(n)
n=n+1'这里在调用时是默认的引用方式调用也就是这里操作n就等于操作c
response.Write c&"<br/>"'第二次时显示6
end sub
c=5'c被初始化为5
response.Write c&"<br/>"'第一次显示5
addone c'调用addone过程
response.Write c'c为6再次显示
%>


输出结果是:5
                     6 (不明白)
                     6

第二段代码:
<%
dim c
sub addone(n)
n=n+1
response.Write c&"<br/>"
end sub
response.Write c&"<br/>" 'c没有被初始化空值直接换行            '不同的部分
'下面的部分就是一样的了
c=5
response.Write c&"<br/>"
addone c
response.Write c
%>


输出结果:(换行)  (不明白)
                    5           (不明白)
                    6           (不明白)
                    6
#3
yms1232007-11-29 17:29
这个程序里传值时用的是传地址的方式将参数传递给过程,这时n与c的内存地址是一样的,所以操作n就等于操作c
#4
lightsout2007-11-29 18:46
原帖由 [bold][underline]yms123[/underline][/bold] 于 2007-11-29 17:29 发表 [url=http://bbs.bc-cn.net/redirect.php?goto=findpost&pid=1122910&ptid=189313][/url]
这个程序里传值时用的是传地址的方式将参数传递给过程,这时n与c的内存地址是一样的,所以操作n就等于操作c


谢谢版主的详细解释 ,原来只是一个很简单的问题,我懂了~
以后还要版主大人多多指教!
1