对于上述代码
char a = 3;
实际上并未发生整形提升,而是将32位二进制截断后0000011的八位存到a里
char b = 127同理
而到了表达式 c = a + b;需要整型提升,然后再被截断
最后到了Printf是特殊的整形提升后输出
所以整型提升发生在表达式中,表达式中char 和short 会整型提升
整型提升,补充的是符号位,符号位是1,补充1,是0,补充0;
对于上述代码
char a = 3;
实际上并未发生整形提升,而是将32位二进制截断后0000011的八位存到a里
char b = 127同理
而到了表达式 c = a + b;需要整型提升,然后再被截断
最后到了Printf是特殊的整形提升后输出
所以整型提升发生在表达式中,表达式中char 和short 会整型提升
整型提升,补充的是符号位,符号位是1,补充1,是0,补充0;