level 5
VB用在参数前的“ByVal”加不加有什么区别,网上找不到明确的说法
2018年06月05日 09点06分
1
level 11
byval 传值
byref 传址
若形参前面省略关键字 就等于 byref 传址
2018年06月05日 09点06分
2
传址是什么意思
2018年06月05日 09点06分
level 11
1、加与不加
加上叫传值,不加是默认的传址。
2、传值与传址
这个我打个比方。
你问你同桌:张三的电话号码是多少?
你同桌说我的绿皮比较笨的封面上写着,把笔记本递给了你。你可以抄录、可以涂改、可以撕掉。等你把笔记本还给你同桌后,你同桌以后再看这个号码,就不一定是原来的了。这就是传址。
你同桌说我给你抄一个,于是拿出一张字条,照着他的绿皮笔记本的封面抄写后,把纸条给了你,以后他也不跟你要这张纸条了。你在枝条上不论怎么弄,都不会影响他的绿皮笔记本上内容。这就是传值。
3、深入的说。
传址,就是让子过程或函数,访问调用者指定的一个变量。
传值,就是调用者将一个变量的内容转达给子过程或函数,而子过程或函数会令开辟一个内存单元来保存这个内容,然后自己访问,等退出时,这个单元将会被释放。
2018年06月05日 10点06分
3
也就是说 传值不会改变 传址数会改变
2020年02月22日 23点02分
level 10
我还是那句话,如果刚入门,那就暂且先理解为,参数按地址传递(ByRef)时,在函数里操作参数就相当于操作你调用这个函数时传递给他的变量本身
2018年06月05日 23点06分
5
三楼解释的真形象!66!老大
2018年11月10日 08点11分
吧务
level 13
传值(ByVal)——主调程序向子程序提供一个变量【x】的具体值,这个变量【x】在子程序中怎么变动,均不影响主调程序。也就是说,仅仅是一个单向传递模式。
传址(ByRef)——主调程序向子程序提供一个变量【x】的具体值,这个变量【x】在子程序中发生变化后,会在退出子程序时,将变化后的值传回主调程序。也就是说,是双向传递模式。
2020年06月05日 03点06分
10
level 12
新手的话用byval 就是了,程序运行速度更快,也会减少莫名其妙问题。当有特殊需求时才考虑byref比如必须要用参数返回数据时,不然一律byval
2020年10月22日 19点10分
14