我正在查看一个用 C++ 编写的 API,我对以下参数类型的含义感到困惑:
无效*&数据
这是否意味着用户将传递对空指针的引用?如果那是真的,那有什么意义呢?我的意思是 void* 已经是间接的,那么你为什么还要再次重定向它呢?
最佳答案
void *
在C++中是pass-by-pointer的意思,意思是你传入一个指针,但实际上是指针的一个拷贝。如果你在你的函数中修改了这个指针,比如改变它的地址,它不会反射(reflect)在你传入的指针中。
结合引用传递,void *&
意味着您将原始指针的别名传递给此函数。如果你修改它,比如改变它的地址,它会反射(reflect)在原来的指针中。
关于c++ - 参数类型 void*& 是什么意思,有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4234690/