
2008年12月5日
在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 @
2008-12-05 17:31 許海林 閱讀(163) |
評論 (0) |
編輯 收藏