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 согласноАрифметическое преобразование VS интегральное продвижение
преобразовать малые интегральные тип в больший интегральный тип. Типы bool, char, signed char, unsigned char, short и unsigned short - это , предназначенные для int, если все возможные значения этого типа соответствуют int.
Но для последнего я не мог понять, почему он использует «преобразованные». Почему cval
не назначен int
первым, а затем в int
конвертированы (или, может быть повышен, я не уверен, что способствовало можно использовать из int
в long
, потому что я вижу только определение продвижения на более мелким шрифтом, чтобы int
) в long
. Я не видел никаких объяснений или примеров на char
прямо на long
в той части книги.
Есть ли что-то не так с моим пониманием?
Я совершенно новый на C++, кто-то, пожалуйста, просветите меня! Спасибо заранее!
Спасибо за усилия! – Des1gnWizard