-6

%d の代わりに変数を指定せずに出力を知ろうとしましたが、プログラムのコンパイルにエラーはありませんが、以下のように出力がどのように表示されるのだろうかと思います。

#include <stdio.h>

int main()
{
    printf("%d");    
    return 0;
}

出力は7288368になりました

4

1 に答える 1

0

「入力出力をフォーマットするために変数を指定する必要があるのはなぜですか?」

実装がprintfそう要求するからです。のマニュアルページからprintf

「各変換指定は文字 % で始まり、変換指定子で終わります...引数は、(型昇格後) 変換指定子と適切に対応している必要があります。」

"%d"10 進変換に適した整数の引数を期待する書式文字列を使用しましたが、引数を指定していないため、未定義の動作が発生しました

于 2013-10-01T10:47:42.817 に答える