void指针类型

来源:互联网 发布:剑雨江湖602进阶数据 编辑:程序博客网 时间:2024/05/16 16:05

void指针:


void指针有两个属性:指向变量/对象的地址长度,但是指针只存储地址,长度则取决于指针的类型,编译器根据指针的类型从指针指向的地址向后寻址,指针类型不同则寻址范围也不同,比如: int*从指定地址向后寻找4字节作为变量的存储单元,double*从指定地址向后寻找8字节作为变量的存储单元。


1.void指针是一种特别的指针
  void *vp
  //说它特别是因为它没有类型 
  //或者说这个类型不能判断出指向对象的长度 

2.任何指针都可以赋值给void指针 
  type *p; 
  vp=p; 
  //不需转换 
  //只获得变量/对象地址而不获得大小 

3.void指针赋值给其他类型的指针时都要进行转换 
   type *p=(type*)vp; 
   //转换类型也就是获得指向变量/对象大小 

4.void指针不能复引用 
  *vp//错误 
  因为void指针只知道,指向变量/对象的起始地址 
  而不知道指向变量/对象的大小(占几个字节)所以无法正确引用 

5.void指针不能参与指针运算,除非进行转换 
   (type*)vp++; 
  //vp==vp+sizeof(type)

 


原创粉丝点击