c++ - 参数类型 void*& 是什么意思,有什么用?

标签 c++ pass-by-reference void-pointers boinc

我正在查看一个用 C++ 编写的 API,我对以下参数类型的含义感到困惑:

无效*&数据

这是否意味着用户将传递对空指针的引用?如果那是真的,那有什么意义呢?我的意思是 void* 已经是间接的,那么你为什么还要再次重定向它呢?

最佳答案

void *在C++中是pass-by-pointer的意思,意思是你传入一个指针,但实际上是指针的一个拷贝。如果你在你的函数中修改了这个指针,比如改变它的地址,它不会反射(reflect)在你传入的指针中。

结合引用传递,void *& 意味着您将原始指针的别名传递给此函数。如果你修改它,比如改变它的地址,它会反射(reflect)在原来的指针中。

关于c++ - 参数类型 void*& 是什么意思,有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4234690/

相关文章:

c++ - 函数的返回类型和它作为参数的类型应该相同吗?

C# 函数引用重载方法

c - 无效指针条件引发段错误

python - 使用 Ctypes 来自 Void 指针的 C 类实例

c++ - 声明不兼容

java:按值传递或按引用传递

c++ - codeblocks IDE 中的 'user keywords' 是什么?

c++ - 取消引用运算符给出的结果与带有 void* 的数组偏移运算符不同

c++ - 列表实现没有正确地对列表求和

c++ - 提升 shared_ptr 复制问题