void类型一般是由两方面的用法:
1:放在函数名前面,表示此函数无返回值;若是放置在函数后的小括号内,表示该函数没有传入值。如int main(void){}。
2:作为指针类型void* 。表示其为暂时未知的指针类型。如malloc()动态分配空间函数的返回值就为void类型;一般是经过强制类型转换转换成需要的指针类型。若是void类型放在函数的形参位置,则表示其可以接受任何指针类型。
#include<stdio.h>
#include<conio.h>
void test(void* p)
{
int* d = (int*)p;//此处需要进行强制类型转换
printf("%d\n",*d);
/*
printf("%d\n",*p);//此处会产生不是完整类型的指针错误
//可用以下方式解决
printf("%d\n",*(int*)p);
*/
}
int main()
{
int a = 12;
test(*a);
getch();
return 0;
}
输出结果为12