Арифметические преобразования типов
Преобразования типов выполняются, если операнды, входящие в выражения, имеют различные типы. Ниже приведена последовательность преобразований.
· Любые операнды типа char, unsigned char или short преобразуются к типу int по правилам:
ü char расширяется нулем или знаком в зависимости от умолчания для char;
ü unsigned char расширяется нулем;
ü signed char расширяется знаком;
ü short, unsigned short и enum при преобразовании не изменяются.
ü Затем любые два операнда становятся либо int, либо float, double или long double.
· Если один из операндов имеет тип long double, то другой преобразуется к типу long double.
· Если один из операндов имеет тип double, то другой преобразуется к типу double.
· Если один из операндов имеет тип float, то другой преобразуется к типу float.
· Иначе, если один из операндов имеет тип unsigned long, то другой преобразуется к типу unsigned long.
· Иначе, если один из операндов имеет тип long, то другой преобразуется к типу long.
ü □ Иначе, если один из операндов имеет тип unsigned, то другой преобразуется к типу unsigned.
ü □ Иначе оба операнда должны иметь тип int.
Тип результата тот же, что и тип участвующих в выражении операндов.
Лекция № 4. Структура программы. Операции. Выражения
Дата добавления: 2015-10-09; просмотров: 1138;