posts - 1,  comments - 0,  trackbacks - 0
   在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 许海林 阅读(103) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2008年12月>
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910

常用链接

留言簿

随笔档案

搜索

  •  

最新评论