码迷,mamicode.com
首页 > 其他好文 > 详细

void指针

时间:2015-05-07 16:25:47      阅读:80      评论:0      收藏:0      [点我收藏+]

标签:

1.void指针是一种特别的指针

它没有类型或者说这个类型不能判断出指向对象的长度

2.任何指针都可以赋值给void指针

不需转换,只获得变量/对象地址而不获得大小

3.void指针赋值给其他类型的指针时都要进行转换(type *p=(type*)vp)

转换类型也就是获得指向变量/对象大小

4.void指针不能复引用(  *vp:这样是错误的)

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

void指针不能参与指针运算,除非进行转换(转型其实是一种编译器指令,大部分情况下他并不改变一个指针真正包含的地址,它只影响被指出内存大小和其类容的解释方式)

void*的作用:

1. 传参:通用类型,可以作为函数模板,链表等参数的通用参数。在使用时,只需要强制类型转换就可以。

2.强制类型转换,有时候由于重载等的干扰,导致需要转换成void *,来进行取地址。

3.指向0的地址,(void *)0,指向全是0的地址,相当于NULL。

4.非void类型显式转换为void类型表达式,用于避免一些代码静态检查工具的警告

void指针

标签:

原文地址:http://www.cnblogs.com/MrZHj/p/4484888.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!