C语言中的void指针

void *为“无类型指针”,可以指向任何数据类型。

void指针的使用规范:

1、void指针可以指向任意类型的数据,亦即可用任意数据类型的指针对void指针赋值。例如:

int *p;

void *q;

q=p

如果要将q赋给其他类型指针,则需要强制类型转换,如:p=(int *)q

2、在ANSIC标准中,不允许对void指针进行算术运算,如q++或q+=1等。而在GNU中则允许,因为在缺省情况下,GNU认为void*与char *一样。sizeof(*q)=sizeof(char)

在什么时候使用void指针:

1、将void指针用作函数的形参,这样函数就可以接收任意数据类型的指针作为参数。

2、当进行纯粹的内存操作时。

你可能感兴趣的:(C语言中的void指针)