c – void *和void **之间有什么区别?

这是特殊的属性,void *也可以被分配一个指向指针的指针并回退,并且接收到原始值.

我在这个地方读了这一行.这是否意味着void *和void **是一样的?
有什么不同?

编辑

void *可以保存任何指针.那么需要什么是void **

最佳答案
一点黑洞.

另一点指向黑洞的东西.

他们并不是一回事,但指针可以转换为void *.您可以将int *转换为void *,因为它是一个指针. void **仍然是一个指针(它只是指向一个指针),并且由于它是一个指针,您可以将其转换为void *.这有道理吗

也就是说,我不认为我曾经使用过一个void **,但是如果你需要一个void *的数组,那么类型将为void **. (在C中)void *通常用于保存指向某些用户数据的指针 – 但是您不会提前知道数据将是什么类型.如果你有一个数组,那么void **.

既然你也被标记为C:以前的情况并不适用:你可以使用std :: vector< void *&gt ;.真的,void *可能是有问题的 - 抽象的基础可能更适合你的目的. void *主要用于C.

转载注明原文:c – void *和void **之间有什么区别? - 代码日志