如何解决C编程:使用格式说明符
在C语言中,答案
char c='61';
printf ("%d",c);
是49。答案
char c='61';
printf ("%c",c);
是1.答案
char c=61;
printf ("%d",c);
是61。答案
char c=61;
printf ("%c",c);
是=
。究竟是怎么回事?
解决方法
在前两种情况下,
char c='61';
具有实施定义的行为,而非标准投诉。引用C11
,第6.4.5 / P10章
一个整数字符常量的类型为int。包含映射到单字节执行字符的单个字符的整数字符常量的值是解释为整数的映射字符表示形式的数值。 包含多个字符(例如
'ab'
)或不映射到单字节执行字符的字符或转义序列的整数字符常量的值是实现定义的。 / strong> [....]
这可能不是您环境中的有效行为。您的编译器可能已在此处发出警告。像
warning: multi-character character constant [-Wmultichar]
char c='61';
^~~~
warning: overflow in implicit constant conversion [-Woverflow]
在其他两种情况下,请阅读有关most common character encoding,ASCII的信息。
-
使用
%d
打印整数值时,它将打印值61
。 -
使用
%c
打印整数值61的字符表示形式时,61
的十进制值表示ASCII字符=
。被打印出来。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。