首页 新闻 会员 周边 捐助

C 中的 void * pointer 表示什么?

0
悬赏园豆:5 [待解决问题]

void不是表示无返回值,空类型吗?

 

怎么会有空类型的指针呢?

 

另外还想知道它是用来做什么的,谢谢!

hexllo的主页 hexllo | 菜鸟二级 | 园豆:318
提问于:2013-07-30 15:08
< >
分享
所有回答(2)
0

void *通用指针  可代表任何常规类型,在不知道得到什么类型值传递的时候应用,但如果要做计算,编译器没法预测需要用到的类型,就不能保证指针偏移量的正确,所以需要确定类型后就可以运算了

hychobits | 园豆:208 (菜鸟二级) | 2013-07-30 15:25
1

void*可以指向任意类型的指针,如:int* a;void* p;p=a;但是不能a=p;除非强制类型转换。

由于void指针可以指向任意类型的数据,亦即可用任意数据类型的指针对void指针赋值,因此还可以用void指针来作为函数形参,这样函数就可以接受任意数据类型的指针作为参数。例如:
void * memcpy( void *dest, const void *src, size_t len );
void * memset( void * buffer, int c, size_t num);

胡小颖颖 | 园豆:180 (初学一级) | 2013-09-22 19:17
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册