C语言中void * 为 “不确定类型指针”,void *可以用来声明指针。如:void * a;
(1)void *可以接受任何类型的赋值:
void *a = NULL;
int * b = NULL;
a = b;//a是void * 型指针,任何类型的指针都可以直接赋值给它,无需进行强制类型转换
我们可以认为void就是一张白纸可以在上班写任何类型的数值。
(2)void *可以赋值给任何类型的变量 但是需要进行强制转换:
例:
int * a = NULL ;
void * b ;
a = (int *)b;
但是有意思的是:void* 在转换为其他数据类型时,赋值给void* 的类型 和目标类型必须保持一致。简单点来说:void* 类型接受了int * 的赋值后 这个void * 不能转化为其他类型,必须转换为int *类型;