main()
{
char a1='=';
char a2='=';
printf("%d",a1+a2);
}
代码如上,它只执行'='+'='并输出值122.(why ??)。
最佳答案
在C语言中,字符在内部使用ascii表示。字符只是数字类型,因此添加它们只会添加ascii *值。 (有关此信息,请使用Google ASCII
。)
在ascii中,'='
是61
,因此'=' + '='
与61 + 61
或122
相同,这就是您要得到的。
如果您希望+
可以连接a1
和a2
,不幸的是,不是这样,因为char
是C中的数字值。如果这是您想要的,我会在Google中搜索C strings
( (有关C如何处理字符串的信息)作为起点。
如果您期望它做其他事情,我也可以编辑答案以进行解释。
*编辑:正如费翔所指出的那样,C标准不保证ASCII。但是,在大多数现代系统上,都使用ASCII,并且无论使用哪种编码,对我的程序都适用类似的答案。
关于c - 当我执行printf(“%d”,'='+'=');时,为什么显示122。请详细说明,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51598780/