
		 
		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 许海林 阅读(188) | 
评论 (0) | 
编辑 收藏