-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これは、が pointersの出力に適していないためです。%pその目的で使用します。そしてドキュメンテーションを読んでください

于 2013-10-12T07:51:58.093 に答える