最近对Void指针的用法比较困惑,在网上搜了一下,稍微整理分享一下:
void指针可以指向任意类型的数据,亦即可用任意数据类型的指针对void指针赋值。
例如:
int * pint;
void *pvoid;
pvoid = pint; /* 不过不能 pint= pvoid; */
如果要将 pvoid 赋给其他类型指针,则需要强制类型转换如: pint= (int *)pvoid;
这个指针指向的内存中的数据的类型要由用户来指定。比如内存分配函数malloc函数返回的指针就是void *型,用户在使用这个指针的时候,要进行强制类型转换,也就是显式说明该指针指向的内存中是存放的什么类型的数据(int *)malloc(1024)表示强制规定malloc返回的void*指针指向的内存中存放的是一个个的int型数据。