#include <stdio.h>
#include <stdlib.h>
int main ()
{
int a=2,*p;
p=&a;
printf ("address of a=%u", p);
return (0);
}
当我在Ubuntu上执行此代码时,它将打印此错误:
format '%u' expects argument of type 'unsigned int',
but argument 2 has type 'int *' [-wformat].
为什么即使在书中的代码中出现这种类型的错误?我知道这是一个愚蠢的问题,但我很困惑。
答案 0 :(得分:4)
当我在ubuntu上执行此代码时,它将打印此错误:
瑙。当您编译时,它会打印出来。
那是因为%u
is not suited for printing pointers。为此目的使用%p
。的 And do read the documentation 强>