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,并且无论使用何种编码,我的类似答案都适用于您的程序。