私は一度も尋ねなかった。そして、私はそれが何をしたのか分からないのですか?例えばprintfの内部での作業方法は?
:
1.コード
char a = 'h';
printf("%i", (int)a); /// Conversion 'a' to int, and again conversion to int by modifier %i. Right?
私はそう書かれる場合 - あなたは言うだろう:それは間違っています!
2.コード
printf("%i", a);
、それは間違っているのはなぜ?修飾子%iで 'a'をint型に変換して出力します。
1と2のコードの違いは何ですか?
P.Sなぜ私は 'Cout'アナログを通してC++のように簡単に出力できないのですか? printf()
は可変引数関数であり、その引数のために、デフォルトの引数のプロモーションルールが適用され、a
はとにかく、int
に昇格されますので、
「私は自分自身に尋ねた」...何ですか? –
@SouravGhosh in the title =) – MaximPro
'%i'は「変換」ではありません。これは出力書式指定子であり、 'printf()'に特定の型の値(この場合は 'int')を取得し、それを値のテキスト表現を表す文字に変換する方法を指示します(この場合は小数点以下を指定します) 。 – unwind