Преобразование типов в C++

Преобразования типов выполняются, если операнды, входящие в выражения, имеют различные типы. Ниже приведена последовательность преобразований.
Более подробно типы данных рассмотрены в статье – Типы данных в C++.

Любые операнды типа char, unsigned char или short преобразуются к типу int по правилам:

  • char расширяется нулем или знаком в зависимости от умолчания для char;
  • unsigned char расширяется нулем;
  • signed char расширяется знаком;
  • short, unsigned short и enum при преобразовании не изменяются.
  • Затем любые два операнда становятся либо int, либо float, double или long double.

Преобразование других типов данных осуществляется следующим образом:

  1. Если один из операндов имеет тип long double, то другой преобразуется к типу long double.
  2. Если один из операндов имеет тип double, то другой преобразуется к типу double.
  3. Если один из операндов имеет тип float, то другой преобразуется к типу float.
  4. Иначе, если один из операндов имеет тип unsigned long, то другой преобразуется к типу unsigned long.
  5. Иначе, если один из операндов имеет тип long, то другой преобразуется к типу long.
  6. Иначе, если один из операндов имеет тип unsigned, то другой преобразуется к типу unsigned.
  7. Иначе оба операнда должны иметь тип int.

Тип результата тот же, что и тип участвующих в выражении операндов.

По материалам книги Т.А. Павловской «C++. Программирование на языке высокого уровня»

Парадигмы программирования в C++
Этапы компиляции и компоновки программ на языке C++
ITandLife.ru