1. ホーム
  2. c

[解決済み] C で printf() を使って整数を表示するには %i または %d?

2022-03-04 01:57:54

質問

私はC言語を勉強しているところで、iOSの開発に手を出していたためObjective-Cの知識も少しあるのですが、Objective-Cでは NSLog(@"%i", x); を表示するために、変数 x をコンソールに出力する必要がありますが、C言語のチュートリアルを読んでいると %d の代わりに %i .

printf("%d", x);printf("%i", x); が表示されます。 x をコンソールに正しく出力します。

この2つは同じ場所に到達するように見えるので、経験豊富な開発者にどちらが好ましいか尋ねているのです。どちらがより意味的に正しいのでしょうか? ?

解決するには?

と共に使用する場合は、完全に等価です。 printf() . 個人的には %d の慣用的な変換指定子とでも言うべきでしょうか)。 int ということです。)

(との違いの1つは %i%d と共に使用される場合です。 scanf() であれば %d は常に10進数の整数を期待するのに対し %i を認識します。 00x を8進数や16進数として使用することはできますが、まともなプログラマは scanf() ということで、特に気にする必要はないでしょう。)