Xiaobo Sun

Eclipse-Unix http://umlfact.berlios.de/~s_xsun/

void* (like Object in Java)

void   *从本质上讲是一种指针的类型,就像   (char   *)、(int   *)类型一样.但是其又具有  
  特殊性,它可以存放其他任何类型的指针类型:例如:  
                                        char   *array="I   am   the   pointer   of   string";  
                                        void   *   temp;                   //temp可以存放其他任何类型的指针(地址)  
                                        temp=array;                       //   temp   的指针类型  
                                        cout<<array<<endl;  
                                        cout<<temp<<endl;  
                                        cout<<(char   *)temp<<endl;  
  运行结果:  
                                      I   am   the   pointer   of   string  
                                      0x0042510C   (这个值就是array指针变量所存储的值)  
                                      I   am   the   pointer   of   string  
   
   
   
  2.但是不能将void*类型的值赋给其他既定的类型,除非经过显示转换:   例如:  
                                                                    int   a=20;  
                                                                    int   *   pr=&a;  
                                                                      void   *p;  
                                                                      pr=p               //error,不能将空的类型赋给int   *  
 
                                                                      pr=(int   *)p;     //ok,经过转换 

posted on 2009-02-05 14:07 Xiaobo Sun 阅读(269) 评论(0)  编辑  收藏 所属分类: C++


只有注册用户登录后才能发表评论。


网站导航:
 
<2009年2月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
1234567

导航

统计

常用链接

留言簿(3)

随笔分类

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜