科技创新

Sub s1(ByVal x As Integer ByVal y As Integer) 帮忙看下这个

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  与之对应的是byref,指按参数的地址传值,byref可以省去,因为默认的方式则是按地址传递。BYREF说明白点就是在过程中使用的数值和外面的数值相等了,并且一旦在过程中改变了这个数值,那么引用过程的数值也修改了。一般来说缺省就是BYREF。

  BYVAL指的是为这个变量在内存中重新开辟一个地址进行存储。在过程中修改这个数值不会影响这个数值。

  如果你写一个函数,想让它返回两个或更多值,你就用传址的方式,在函数内部对参数的修改,返回之后,你传进去的变量,就有新的值了。

  展开全部对于S1过程,两个参数的传递是byval,也就是按值传递,调用时会将变量的值作为参数,而本身不影响变量的值。所以调用完成后,a,b两个变量的值不变。

  对于S2过程,没有使用传递变量的标记,则VB默认是按引用传递(同于使用ByRef标记),调用时,会将变量的地址作为参数传递,也就是说传递的是一个指向变量值的指针。在S2中操作了变量的值,也就影响了原始的变量的值。

  展开全部s1是值传递,形参的改变不影响实参,s2是地址传递,形参的改变影响实参。更多追问追答追问s2 不声明 默认就是 byref吗追答对的。不声明就默认是地址传递追问s1下的 print 输出结果就是 s1 中 X Y 所赋的值吗?追答Call s1(a, b) s1对a,b不起作用,没有交换他们的值

  Print a, b 直接输出之前给ab赋的值,也就是12 13了追问那么S2 后的PRINT输是受 S2影响吗追答恩,对的,地址传递实参跟形参的地址就是一样的,他们在内存中是同一个位置,表示的也是同一个的数,记住地址传递形参的的改变影响实参,值传递不影响就好了追问再问下, 过程被调用时,事件过程中的参数会被映射到过程中相应的变量吗?追答你看下这个例子

联系我们

CONTACT US

联系人:张先生

手机:13988889999

电话:020-66889888

邮箱:admin@baidu.com

地址:广东省广州市番禺经济开发区58号