main()
{
char a1='=';
char a2='=';
printf("%d",a1+a2);
}
代码如上,它只执行'='+'='并输出值122.(为什么?)。.
答案 0 :(得分:1)
因为'='
的ASCII值为61
答案 1 :(得分:0)
在C中,字符在内部使用ascii表示。字符只是数字类型,因此添加它们只会添加ascii *值。 (有关此信息,请使用Google ASCII
。)
在ascii中,'='
是61
,因此'=' + '='
与61 + 61
或122
相同,这就是您要得到的。
如果您希望+
将a1
和a2
串联在一起,那么不幸的是事实并非如此,因为char
是C中的数字值。您需要,我以Google C strings
(有关C如何处理字符串)为起点。
如果您希望它做其他事情,我也可以编辑答案以解释这一点。
* EDIT:正如Fei Xiang指出的那样,C标准不保证ASCII。但是,在大多数现代系统上,都使用ASCII,并且无论使用哪种编码,我的程序都将得到类似的答案。