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