在c++里,void*是一种特殊的指针类型,它可以被任何数据指针类型的地址赋值(函数指针不能赋值给它),因此有时void*被称为泛型指针。void *从本质上讲是一种指针的类型,就像 (char *)、(int *)类型一样.但是其又具有特殊性,它可以存放其他任何类型的指针类型;
例如:
char *array="I am the pointer of string";
void * temp; //temp可以存放其他任何类型的指针(地址)
temp=array; //temp 的指针类型
cout<<array<<endl;
cout<<temp<<endl;
运行结果:
I am the pointer of string
0x0042510C (这个值就是array指针变量所存储的值)
2.但是不能将void *类型的值赋给其他既定的类型,除非经过显示转换:
例如:
int a=20;
int* pr=&a;
void* p;
pr = p //error,不能将空的类型赋给int *
pr = (int* )p; //ok,经过转换
posted on 2008-12-05 17:31
许海林 阅读(124)
评论(0) 编辑 收藏 引用