繁体   English   中英

为什么在C中使用%c?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM