K&R 声明,如果其中一个操作数是一个int,另一个操作数将被转换为int. 当然,这只是在遵循所有其他规则(如long double、float等unsigned int)之后。
按照这种逻辑,如果另一个操作数是 ,char则将转换为。但是如果操作中的最高整数类型是 a呢?intintshort
现在,显然我不需要将 a 显式转换char为更大的整数,但我想知道,ANSI-C 是否处理引擎盖之间char和short引擎盖下的隐式转换?K&R 对此只字未提。
说,我有以下几行代码:
char x = 'x';
short y = 42;
short z = x + y;
会x转换成short? 或者根本就没有转变?
只是为了说清楚:我不是在问是否或如何从转换char为short. 我只想知道隐式类型转换会发生什么。