指向C++中的void?

tun*_*nuz 11 c++ pointers void void-pointers

我正在阅读Ogre3D实现中的一些代码,我无法理解void *类型变量的含义.指针void在C++中意味着什么?

Joh*_*itb 39

指向void的指针void*可以指向任何对象:

int a = 5;
void *p = &a;

double b = 3.14;
p = &b;
Run Code Online (Sandbox Code Playgroud)

您不能取消引用,递增或递减该指针,因为您不知道指向哪种类型.这个想法是void*可以用于memcpy只复制内存块的功能,而不关心它们复制的类型.

  • 我认为这没有道理.为什么要p ++; 增加一个?也可以通过页面大小或其他值增加.因为sizeof(*p)是大失败,所以我看不出它有多大意义:) (2认同)