说明
指针变量包含两个信息,地址和数据的类型。而void*是一种特殊的指针,其只包含地址而不包含类型。
int a;
void *vpa = &a; //可以
int *ipa = vpa; //错误,正确方式如下。
int *ipa = (int*)vpa; //可以,强转以后才可以
int b = *vpa; //错误,void*类型不能具体化
作用
用来传递不确定类型的参数。也常用于回调函数中,传入批量的参数;
void function(int dataType, void* data) {
// 根据dataType的不同值,进行不同的转换
switch (dataType) {
case 0:
int* a = (int*)data;
case 1:
char* a = (char*)data;
...
}
}