vb 参数传递问题 20

<%dimnmnm=request("mm")setrs=server.createobject("ADODB.recordset")sql="select*fromne... <%
dim nm
nm=request("mm")
set rs=server.createobject("ADODB.recordset")
sql="select * from new where BigClassName="&nm& "order by updatetime desc"
rs.open sql,conn,3,3

if rs.eof then

response.write "没有新闻"
response.End()
else
%>

<table width="90%" border="1">

<%
dim m,n,I
nm=request("mm")
if not rs.eof then
rs.pagesize=2 '定义一页显示的记录数目
pagesize=rs.pagesize
tatalrecord=rs.recordcount '获取记录总数目
tatalpages=rs.pagecount '获取分页的数目
rs.movefirst
nowpage=request("page") '用request获取当前页数,注意page是自己定义的变量并非函数
if nowpage&"x"="x" then '处理页码为空时的情况
nowpage=1
else
nowpage=cint(nowpage) '将页码转换成数字型
end if
rs.absolutepage=nowpage '将指针移动到当前显示页的第一条记录
do while not rs.eof and pagesize>0
%>
展开
 我来答
gfap26
2010-11-10 · TA获得超过313个赞
知道小有建树答主
回答量:520
采纳率:100%
帮助的人:245万
展开全部
给你解释下址传递和值传递

地址传递:就是把一个内存地址内的数据分别给多个变量使用.
就相当于一个人有两个名字(比如这人叫"A","B"),那么我叫A和叫B的结果都是一个样也就是我叫的都是同一个人,只是我的叫法不一样了,那么假如我说原来A有1个苹果,我给了B2个苹果,那么结果问A现在有几个苹果.因为A和B是同一个人,我给A和给B都是达到了同样的目的,那么答案肯定是3个当然结论就是"只要其中一个有了变化,那么另一个也随之变化.

数值传递:
数值传递则没有这样共用一个内存地址.他只是把形参的数据复制给实参,他们分别用了两个地址存放数据.同样用A和B来举例.A有1个苹果,现在我让B等于A(注意我是复制,而不是说现在B也是A),然后我在给B 2个苹果,那么现在A还是有1个苹果,而B有3个.因为我给的是不同的两个人所以后面的人和前面的互不影响.

再来看你的这题
先说明因为你这个程序里的XYZ没有定义为过程级以上的变量,所以两个过程中的XYZ若不经过传递是不会当作一个的,他们互相不干涉.为方便理解行参一律用了X1,Y1,Z1 实参一律用 X2,Y2,Z2.

根据辨别流程图知道X Y为按地址传递,Z为按值传递.
Call sub1(x, y, y) 调用了SUB1过程X1=X2=1,Y1=Y2=2,Z2=Y1=2 前面X1为形参,X2为实参,前面Y1为形参,Y2为实参.
因为过程中的X2Y2是地址传递,也就是说他和形参中的XY相当于同一个人2个名字.过程中的Z2是数值传递,只是把行惨Y1的数据复制给实参Z2. 也就是说X1Y1改变他会导致形参X1Y1变化,而实参Z2的改变不会引起形参Y1变化.
那么过程中:x = 3 * z: y = 2 * z: z = x + y
就是 X=3*2,Y=2*2,Z=X+Y Print 为 X=6,Y=4,Z=10
(注意此时因为实参XY为6和4,所以退出过程后X和Y仍然是X=6,Y=4)

退出过程后的 Print x,y,z
因为Z在程序运行过程中始终没有用到过,SUB1过程里的Z的变化不会对原来的Z=3产生改变,也就是仍然为Z=3
故结果Print x,y,z为: 6 4 3
请参考
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式