在c中添加两个字符文字

当我写下面的代码时,输​​出是110.任何人都可以告诉我为什么我得到这个值?

#include<iostream>
int main()
{
    std::cout << '9' + '5';
    return 0;
}

解决方法:

对于ASCII encoding,“9”和“5”的值分别为57和53.

57 53等于110.

你要添加的是字符的编码值,而不是它们的数字.

并且您获得输出110(而不是具有值110的ASCII字符’n’),因为添加导致字符为promoted到int值,结果是未转换为char的int值.

上一篇:为什么这个简单的C加法比同等的Java慢6倍?


下一篇:Java中的整数加法性能