-3
#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].

为什么即使在书中的代码中也会出现这种类型的错误?我知道这是一个愚蠢的问题,但我很困惑。

4

1 回答 1

4

当我在 ubuntu 上执行此代码时,它将打印此错误:

呐。当你编译它时它会打印出来。

那是因为%u不适合打印指针。用于%p此目的。并阅读文档

于 2013-10-12T07:51:58.093 回答