1. Ю. Баженова. Visual C++ 6.0. Уроки программирования_______________
отся стандартным преобразованием типов. В языке C++ автоматически (ыполняется стандартное преобразование типов в том случае, если выраже-ше содержит переменные различных типов.
Основные правила для автоматического преобразования типов состоят в :ледующем:
• типы всех переменных, используемых в выражении справа от оператора присваивания сначала преобразовываются к наиболее "широкому" типу, а затем выполняется вычисление выражения;
• тип результата будет преобразован к типу значения, расположенного слева от оператора присваивания. Пример:
long Inumi, lnum2;
int inum;
// Значение переменной inum преобразовывается к типу long, // а затем выполняется присваивание Inumi = inum;
// или умножение. lnum2 = inum * lnum2;
При преобразовании целых типов char, int, long и типов, образуемых из них, таких, как short, signed и unsigned, выполняются следующие правила:
• при преобразовании целого типа signed к типу unsigned не происходит изменения значения битов и поэтому для отрицательных чисел значение переменной типа unsigned будет отличаться от значения переменной типа signed;
Пример:
short i = -3; unsigned short us;
us = i; // Переменная us будет равна 65533
• при преобразовании целого типа unsigned к типу signed не происходит изменения значения битов и поэтому значения переменной типа unsigned могут отличаться от значения переменной типа signed;
Пример:
short i; unsigned short us = 65533;
i = us; // Переменная i будет равна -3
• допускается автоматическое преобразовании целого типа к более "короткому" типу, однако это может вызвать потерю части данных. При преобразовании типов с плавающей точкой выполняются следующие правила:
• допускается автоматическое преобразование типа float к double и double к long double, значение переменной при этом не изменяется;
• преобразование к более "короткому" типу с плавающей точкой (например, double к float) происходит корректно только в том случае, если нет потери значения, в противном случае результат будет неопределен;
26
Используются технологии uCoz
|