[英]Why is %c used in 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
代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.