执行此代码时:
#include <iostream>
int main(){
int a = 5;
char x = 'b';
std::cout << "The Answer is" << std::endl;
std::cout << a+x;
}
我得到了输出:
答案是
103
为什么会这样?
答案 0 :(得分:14)
向char
添加int
时,创建的(p)r值会提升为int
。因此,打印的是int
等价于(通常)ASCII值+ int的总和。
&#39; b&#39;的ASCII值是'b' == 98
。因此98 + 5 == 103 (integer)
。
答案 1 :(得分:5)
a + x
评估为a + (int)x
,因为x
被提升为int
。
a
是5. x
的值取决于您的平台使用的编码;很可能是ASCII,即98.结果103已经实现。