当我做printf(“%d”,'='+'=');,为什么它显示122.Please详细解释
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当我做printf(“%d”,'='+'=');,为什么它显示122.Please详细解释相关的知识,希望对你有一定的参考价值。
main()
{
char a1='=';
char a2='=';
printf("%d",a1+a2);
}
代码如上,它只是执行'='+'='并打印值122.(为什么??)..
答案
因为'='
的ASCII值是61
另一答案
在C中,字符使用ascii在内部表示。字符只是数字类型,因此添加它们只会添加ascii *值。 (谷歌ASCII
了解更多信息。)
在ascii中,'='
是61
,所以'=' + '='
与61 + 61
或122
相同,这就是你得到的。
如果你希望+
连接a1
和a2
,不幸的是情况并非如此,因为char
s是C中的数值。如果这是你想要的,我会google C strings
(关于C如何处理字符串)作为起点。
如果你期望它做其他事情,我可以编辑我的答案来解释它。
*编辑:正如飞翔指出的那样,C标准不保证ASCII。但是,在大多数现代系统中,使用ASCII,并且无论使用何种编码,我的类似答案都适用于您的程序。
以上是关于当我做printf(“%d”,'='+'=');,为什么它显示122.Please详细解释的主要内容,如果未能解决你的问题,请参考以下文章
C语言,如何给3个char变量赋值?不能直接char a='D',这种。要求用printf,scanf.
[Error] expected expression before','token 是啥意思?