void *a;
一般用在函数参数里
使用和正常指针一 但不能直接对 void指针进行 解引用
也就是不能直接
*a;
必须先强制转换为普通指针再解引用
*(int *)a
为是通用所以 可以表达任何类型
编译器可以自动把void转换为普通指针
比如 char *a = malloc (100);
malloc返回的是void* 在这里自动转换位char *
如果是int *a = malloc (100);
void*就自动转换为int *了
什么时候用 注意通用二字 想用一个参数表达任何类型的时候就可以用void*
c99规定不能对void* 进行++ --之类的操作(但gcc可以)
转发至微博
转发至微博