C/C++ void类型指针
性质
空类型指针,只储存地址的值,丢失类型,如果要访问所指对象的值必须进行类型转换。
所有类型指针可隐式转换成void类型的指针,void转其他类型指针需要强制转换。
代码举例
#include <iostream>
using namespace std;
int main()
{
int a = 1;
void *p = &a;
int *p2 = &a;
void *p3 = p2; // 正确,int*隐式转换成void*
cout << *p << endl; // 不正确,访问void所指对象的值需强制转换
cout << *(int*)p << endl; // 正确,其输出为1
cout << p << endl; // 正确,输出的值为a的内存地址
cout << p3 << endl; // 正确,与上一行同理
return 0;
}