为什么在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代码。