void指针是一种非常特殊的指针,它可以指向的类型是不确定的,可以作为函数的形参,用来表示可以接受任意类型的参数,也可以作为函数的返回值,表示返回值类型的不确定性,而在使用到返回值的时候再对其加以显式转换。
举个例子:
int a = 6;
double b = 5.9;
void* c = &a;
cout<<"a: "<<a<<endl;
cout<<"&a: "<<&a<<endl;
cout<<"(int*)c: "<<(int*)c<<endl;
cout<<"*((int*)c): "<<*((int*)c)<<endl;
c = &b;
cout<<"*((double*)c): "<<*((double*)c)<<endl;
他们的结果如下:
需要注意的是,这里的c可以赋值多次,而且每一次的类型都可以不相同,只需在处理的时候进行显式转换即可。