C 语言 void指针
 如果我们声明了int指针,则此int指针不能指向float变量或某种其他类型的变量,即它只能指向int类型的变量。 为了克服这个问题,我们使用了指向void的指针。 指向void的指针表示可以指向任何数据类型的通用指针。 我们可以将任何数据类型的地址分配给void指针,并且可以将void指针分配给任何类型的指针,而无需执行任何显式的类型转换。
 *void指针的语法
 void pointer name;
 下面给出了void指针的声明:
 void *ptr;
 在上面的声明中,void是指针的类型,而’ptr’是指针的名称。
 int i=9; //整型变量的初始化。
 int *p; // 整数指针声明。
 float *fp; // 浮点指针声明。
 void *ptr; //void指针声明。
 p=fp; // 错误.
 fp=&i; // 错误
 ptr=p; // 正确
 ptr=fp; // 正确
 ptr=&i; // 正确
 C语言中void指针的大小
 C语言中void指针的大小与字符类型的指针的大小相同。指向void的指针的表示形式与字符类型的指针相同。
 #include <stdio.h>
 int main()
 {
 void *ptr = NULL; //void 指针
 int *p = NULL;// 整型指针
 char *cp = NULL;//字符指针
 float *fp = NULL;//浮点指针
 //void指针的大小
 printf(“void指针的大小 = %d\n\n”,sizeof(ptr));
 //整型指针的大小
 printf(“整型指针的大小 = %d\n\n”,sizeof§);
 //字符指针的大小
 printf(“字符指针的大小 = %d\n\n”,sizeof(cp));
 //浮点指针的大小
 printf(“浮点指针的大小 = %d\n\n”,sizeof(fp));
 return 0;
 }
 输出结果
 void指针的大小 = 4
 整型指针的大小 = 4
 字符指针的大小 = 4
 浮点指针的大小 = 4
 void指针可以存储任何类型的对象,并且我们可以通过使用带有适当类型转换的间接操作符来检索任何类型的对象。