在 C/C++ 中,当我想找到两个字符的总和时 - 我得到 int 的结果。
例如:
#include <stdio.h>
int main(){
char a = 'a', b = 'b';
printf("%d + %d = %d\n", sizeof(a), sizeof(b), sizeof(a + b));
return 0;
}
印刷
1 + 1 = 4
为什么?
原文由 Mahnerak 发布,翻译遵循 CC BY-SA 4.0 许可协议
Because although
a
andb
are each of typechar
, the expressiona + b
is of typeint
.每当您使用 char 类型进行数学运算时,它们都会在进行实际计算之前转换为 int。