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

来源:互联网 发布:c语言基础自学书籍下载 编辑:程序博客网 时间:2024/04/30 18:52
以前看一本书上,写着VB的两种参数传递方式:byval 和byrefbyval叫做“传值”,想当于把值复制一份到新的变量中。而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