- 仅存储内存地址,不指定目标类型
- 目标类型不明确,不能直接解引用
- 使用前必须做指针计算,以1字节为单位
如果用无类型指针保存了常量的地址,则会报错,例如:
//无类型指针
#include <stdio.h>
int main(void) {
int a =100;
void *p = &a;//p保存a的首地址,p指向a
printf("%d",*p);
return 0;
}
/*结果:error: argument type 'void' is incomplete
错误:参数类型“void”不完整
即对于无类型指针报错,有两种解决方法
1.间接法——把无类型指针强制转为int类型指针赋值给p1,p1同样也指向a【指针强转需要在数据类型加*如&