为什么在C中使用%c?
根据K&R C部分1.6, char
是一种整数。 那么为什么我们需要%c
。 为什么我们不能将%d
用于所有事情?
因为%d
将打印char
的数字字符代码:
printf("%d", 'a');
打印97
(在ASCII系统上),而
printf("%c", 'a');
打印a
。
虽然它是一个整数,但%c
将其数值解释为显示的字符值。 例如对于角色a
:
如果你使用%d
你会得到一个整数,例如97,字符a
的内部表示
VS
使用%c
显示字符’ a
‘本身(如果使用ASCII)
即,这是内部表示与外部目的的解释 (例如printf
)
粗略地说, %c
打印字符的ASCII表示。 %d
打印其十进制值。
如果使用%c
,则会打印(或扫描)字符或字符。 如果使用%d
,则打印(或扫描)整数。
printf("%d", 0x70);
机器如何知道您想输出一个字符,而不是它的等效ASCII值?
%d认为char是32位并且打印它像一个整数,但%c将char的int值转换为ascii字符然后打印它。
%d
用于打印decimal(integer)
数字,而%c
用于打印character
。如果您尝试打印%d
格式的字符,计算机将打印该ASCII
代码。