什么是通用指针

来源:百度知道 编辑:UC知道 时间:2024/05/10 14:06:58
c语言中的通用指针怎么定义,怎么用,什么情况下用????????

void *a;
一般用在函数参数里

使用和正常指针一样 但不能直接对 void指针进行 解引用
也就是不能直接
*a;
必须先强制转换为普通指针再解引用
*(int *)a

因为是通用所以 可以表达任何类型
编译器可以自动把void转换为普通指针
比如 char *a = malloc (100);
malloc返回的是void* 在这里自动转换位char *
如果是int *a = malloc (100);
void*就自动转换为int *了

什么时候用 注意通用二字 你想用一个参数表达任何类型的时候就可以用void*

c99规定不能对void* 进行++ --之类的操作(但gcc可以)

void *p;
但是在用p的时候要进行强制转换为相对应的类型。