说明
指针用于存储物理地址,可以理解为一种特殊的类型。
char a = 'f';
char *b = &a;
void*
除了函数指针和指向类成员的指针,指向其他任意类型对象的指针都能被赋给一个void类型的变量。此外,一个void能被赋给另一个void*,两个void能够比较是否相等,我们还能显示将void转化为其他类型。由于编译器实际上并不清楚void所指的对象到底是什么类型,所以对它执行官其他操作可能不太安全且会引发编译器错误。要想使用void,我必须显示的转化成特定的类型指针。
void f(int* pi){
void * pv = pi;//ok
*pv;//error
++pv;//error
int* pi2 = static_cast<int*>pv;//ok
}