Asp教程

通过asp实例结合结合ACCESS,MSSQL来更好的深入Asp学习 - 爬坡者

« 点击删除后自动返回前一页,并刷新前一页Javascript中$符号的意思 »

asp函数byval byref 按值传递与按地址传递的区别与例子

悬赏分:0 - 离问题结束还有 7 天 22 小时
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


这个输出结果是什么?运行步骤?
这个程序里面的c好像就没有用啊!
问题补充:输出的结果是:12:5:28
????????????????????????????????????????、????
"*********************************************************
12:6:11

                                                                               回答者:maize09 - 江湖新秀 五级 9-20 10:42
因为byref是将函数里面的算完的c值返回
c=(a+1)+(b+1)+c
即abc(a,b) 中的b
这样应该输出12:5:27
怎么会是12:5:28 呢
你再好好看看吧
                                                                            回答者:yankun123316 - 魔法师 四级 9-25 08:39

"*********************************************************
<%

dim a,b
function abc(byval a,byref c)
a=a+1'a = 6
response.write "a:"& a &"<br>"
b=b+1 'b = 10 + 1 = 11
response.write "b:" & b &"<br>"


'***************************************************
c=c+a+b '(c = 11 + 6 +11 = 27) 这里为什么 c = 11 + 6 + 11呢? 因为byref c 是按地址传递,而abc(a,b) 这个b的值在上一步已经赋值得11,byref c 是

直接取b对应地址上的值
'那么当然 abc(byval a,byref c) 这个c也等于对应地址的b的值得
'如abc(byval a,byref c) 改为 abc(byval a,byval c) 那么结果就是 12 : 5 : 27
'你可看看byval与byref的区别。按值传递与按地址传递
response.write "c:" & c &"<br>":response.end'这里的C已经是28了
'***************************************************


abc=a*2 'abc = 6*2=12
end function
a=5:b=10
response.write abc(a,b)
response.write ":" & a & ":" & b

%>

参考资料:www.papozhe.com 
回答者:papozhe - 秀才 三级 9-27 10:07

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新评论及回复

最近发表

Powered By Z-Blog 1.8 Spirit Build 80710

Copyright 2007-2008 papozhe.com [asp教程] All Rights Reserved.
浙ICP备07030537号
免责申明:所有文章除特别声明,均来自网上,主要为学习用!内容仅供参考,版权归原作者。如侵犯您利益,请来信告知.
Email:papozhe$Gmail.com QQ:76336503