vb编程问题急!!!
说明公用过程和调用它的过程是怎样进行实参和形参对应的,实结合中参数的传送有哪几种,在VB中如何确定是按哪种方式进行的传送,阐述他们之间的不同。...
说明公用过程和调用它的过程是怎样进行实参和形参对应的,实结合中参数的传送有哪几种,在VB中如何确定是按哪种方式进行的传送,阐述他们之间的不同。
展开
3个回答
展开全部
按值传递和按地址传递。
按值传递:将实参的具体值传给形参。有三种情况可以确定为按值传递:
1)实参为常量或表达式(例2*4-5)
2)实参为变量名但用括号括起来(例(X))
3)形参前面加上关键字Byval
按地址传递:将存放实参值的内存单元地址传给形参。实参为变量名且形参前面未加上关键字Byval时是按地址传递;数组只能按地址传递。
例:private sub exam(byval x,y,z)
x=x+2
y=y-3
z=z^2
print x,y,z
end sub
private sub form_activate()
dim a%,b%,c%
a=1:b=2:c=3
print a,b,c
call exam(a,(b),c)
print a,b,c
end sub
此例中a和b 为按值传递,而c为按地址传递。因为a,b只是把值传了过去,因此exam过程中x,y的改变并没影响到a,b,而c传的是地址,因此C和y指的是同个存储单元,因此y变成几,C就会变成几,所以最后输出结果为:
1 2 3
3 -1 9
1 2 9
按值传递:将实参的具体值传给形参。有三种情况可以确定为按值传递:
1)实参为常量或表达式(例2*4-5)
2)实参为变量名但用括号括起来(例(X))
3)形参前面加上关键字Byval
按地址传递:将存放实参值的内存单元地址传给形参。实参为变量名且形参前面未加上关键字Byval时是按地址传递;数组只能按地址传递。
例:private sub exam(byval x,y,z)
x=x+2
y=y-3
z=z^2
print x,y,z
end sub
private sub form_activate()
dim a%,b%,c%
a=1:b=2:c=3
print a,b,c
call exam(a,(b),c)
print a,b,c
end sub
此例中a和b 为按值传递,而c为按地址传递。因为a,b只是把值传了过去,因此exam过程中x,y的改变并没影响到a,b,而c传的是地址,因此C和y指的是同个存储单元,因此y变成几,C就会变成几,所以最后输出结果为:
1 2 3
3 -1 9
1 2 9
展开全部
参数传递有传值和传址,程序在运行时为每个变量分配了一个地址,所以传址是将变量的地址传给调用的过程,如果调用的过程对传递过去的变量的值进行了操作,变量的值会变。而传值只是把值传给调用的过程使用,本身的值不会变。或许你还是不明白…
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
模块、变量、过程、函数等等等等。
你的问题太笼统。
你的问题太笼统。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询