目前我正在学习C语言当我尝试使用gcc pointer.c编译一个简单的指针代码时
代码是
#include <stdio.h>
int main(){
int a=57;
printf("The value of a is %d n",a);
printf("The address of a is %un",&a);
return 0;
}
然后我得到了这个错误(实际上是警告)如图所示输入图片描述
但我看到它编译了我的代码,并成功运行,如图所示输入图片描述
我想知道为什么它给出错误
应该使用%p
而不是%u
来显示指针地址。您的代码将是:
#include <stdio.h>
int main()
{
int a=57;
printf("The value of a is %d n",a);
printf("The address of a is %pn",&a);
return 0;
}
#include <stdio.h>
int main()
{
int a=57;
printf("The value of a is %d n",a);
printf("The address of a is %pn",(void*)&a);
return 0;
}
变量的地址是一个整数数字量,用于打印这个数量的格式说明符是%p
(用于打印十六进制形式的地址)和%lld
(用于打印十进制地址). 为了打印变量的地址,我们使用&
和变量名。%p
指定符期望void*
.