昨天刚学习指针,就想着自己谁便折腾一下,结果发现这个错误。在找了很多教程之后找到了解决方法。
以下是代码:
#include <stdio.h>
int main(void)
{
int a = 0x66;
int *p;
p = &a;
printf("a = %x.\n", a);
printf("p = %x.\n", p);
printf("*p = %x.\n", *p);
p++;
printf("p = %x.\n", p);
return 0;
}
//编译时报错
/*
test2.c: In function ‘main’:
test2.c:17:25: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
17 | printf("p = %x.\n", (unsigned) p);
| ^
test2.c:21:25: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
21 | printf("p = %x.\n", (unsigned) p);
| ^
*/
在更换了编译指令之后就不报错了
//解决方法:gcc test2.c -o test2 -> gcc test2.c -o test2 -Wformat=0即可解决问题