void通常表示无值,但将void作为指针类型时,它却表示不确定的类型。这种void型指针是一种通用型指针,也就是说任何类型的指针值都可以赋给void类型的指针变量,例如:
voidpa; //错误,不能声明void类型的变量
void *pc//正确,可以声明void类型的指针
需要说明的是,这里说void型指针是通用型指针,是指它可以接受任何类型的指针的赋值,但对已获值的void型指针,对它再进行处理,如输出或传递指针时,则必须再进行显示类型转换,否则会出错误。看下面的例1.10。
[例]void 型指针的使用
#include<iostream.h>
main()
{ void*pc;//声明void(无类型或叫通用性)指针pc
int i = 123;
char c = ‘a’;
pc =&i;//将存放整型数123的变量i的地址赋给void型指针pc
cout << *(int *)pc << endl;//输出指针值123,要进行整型数类型转换
pc =&c;//将存放字符a的变量c的地址赋给void型指针pc
cout << *(char *) pc<<endl; //输出指针值a,要进行字符型数类型转换
return 0;
}
输出结果:123