char cval;
short sval;
long lval;
sval + cval; // sval and cval promoted to int
cval + lval; // cval converted to long
Это фрагмент кода на C ++ Primer. Я знаю, что sval+cval
генерирует тип int в соответствии с
преобразовать малые целочисленные типы в более крупные целочисленные типы. Типы bool, char, signed char, unsigned char, short и unsigned short повышаются до int, если все возможные значения этого типа подходят для int.
Но для последнего я не мог понять, почему он использует "преобразованный". Почему cval
сначала не повышается до int
, а затем int
конвертируется (или, может быть, повышается, я не уверен, можно ли использовать повышение с int
до long
, потому что я вижу определение повышения только для меньшего шрифта до int
) до long
. Я не видел никаких объяснений или примеров на char
прямо к long
в этой части книги.
Что-то не так с моим пониманием?
Я новичок в C ++, пожалуйста, просветите меня! Спасибо заранее!