1

なぜprintf("%c ", 2293552);印刷するの0ですか?

ASCII値は0から127です。これは循環的なものである必要があることはわかっていますが、明確な説明が必要です。ありがとうございました

4

2 に答える 2

3

番号2293552はに対応し0x22ff30ます。ASCIIとして解釈する場合、。のコードである、をprintf含む最後の8ビットを超えるすべてのビットを無視します。0x30'0'

C99標準から:

7.19.1.6.8- %cl長さ修飾子が存在しない場合、int引数はに変換されunsigned char、結果の文字が書き込まれます。

于 2012-09-20T16:10:32.573 に答える
0

%c引数の下位バイトである。のみを使用している可能性があります2293552 & 255 = 48 = '0'

于 2012-09-20T16:11:00.483 に答える