byval 和byref的区别,今天刚明白。

时间:2022-01-14 12:47:35
以前看一本书上,写着VB的两种参数传递方式:byval 和byref byval叫做“传值”,想当于把值复制一份到新的变量中。 而byref叫做传址,相当于把原变量的地址传过去。 不过今天我发现,byref的传址,其实并非相当于C++中的指针传址,而是相当于C++中的引用。 也就是说,在C++中,传递参数,有三种方式: void abc (int a){} void abc (int* a){} void abc (int& a){} 而在VB中,有两种: sub abc(byval a as integer) '想当于 void abc (int a){} sub abc(byref a as integer) '想当于 void abc (int & a){} 在VB6中,如果不写byval或byref,默认为byref,在VB.NET中,默认为byval