K&R C セクション 1.6 によると、achar
は整数型です。では、なぜ が必要なのでしょうか%c
。そして、なぜ%d
すべてに使用できないのでしょうか?
6 に答える
%d
の数値文字コードを出力するためchar
:
printf("%d", 'a');
97
(ASCII システムで) を出力します。
printf("%c", 'a');
印刷しa
ます。
これは整数ですが、%c
はその数値を表示用の文字値として解釈します。たとえば、キャラクターの場合a
:
を使用すると、文字の内部表現である%d
97 などの整数が得られます。a
対
%c
文字 ' ' 自体を表示するために使用a
(ASCII を使用している場合)
つまり、内部表現と外部目的の解釈printf
の問題です ( with など)
を使用する%c
と、文字または char を印刷 (またはスキャン) します。を使用する%d
と、整数を出力 (またはスキャン) します。
printf("%d", 0x70);
同等のASCII値ではなく、文字を出力したいことをマシンはどのように知るのでしょうか?
大まかに言えば、%c
文字の ASCII 表現を出力します。%d
その 10 進値を出力します。
%d
はdecimal(integer)
数値を出力するために使用され、%c
は出力するために使用されます。 formatcharacter
で文字を出力しようとすると、コンピュータは文字のコードを出力します。%d
ASCII
%d は char が 32 ビットであると考えて整数のように出力しますが、%c は char の int 値を ascii 文字に変換してから出力します。