- •Основные типы данных
- •Переменные и константы целого типа
- •Переменные типа int
- •Классы памяти и инициализация переменных
- •Переменные типа long
- •Константы целого типа
- •Строки, или строковая константа, или литерал
- •Переменные типа short
- •Переменные типа char
- •Константы типа char
- •Переменные вещественного типа
- •Константы вещественного типа
- •Именованные константы
- •Преобразование типов Преобразования при вычислении выражений
- •Преобразование типов при выполнении операций присваивания
- •Преобразования при приведении типов
Преобразование типов при выполнении операций присваивания
В операциях присваивания тип значения, которое присваивается, преобразуется к типу переменной, получающей это значение. Допускается преобразования целых и плавающих типов, даже если такое преобразование ведет к потере информации.
Пример: long x; char c; c=x+1;
Если х=40 (0x00000029), то с=41(0x29), но если х=300L (0x0000012C), то с=44(0x2C), т.к. старшие биты не помещаются в тип char.
Следующие преобразования типов гарантируют сохранение точности и неизменность численного значения:
сhar short int long;
unsigned сhar unsigned short unsigned int unsigned long;
float double long double.
Преобразования при приведении типов
В С++ имеются операция явного преобразования (приведения) типа, которая имеет две формы: функциональную и каноническую.
Функциональная форма преобразования имеет формат:
имя_типа (операнд);
В приведенной записи имя_типа должно иметь простое (несоставное) наименование. Пример:
int i=2; unsigned long g=2,k; double d; float f;
d=double(i)*double(g); f=float(d);
k=unsigned long(f)+g; // Ошибка!
Каноническая форма преобразования имеет формат:
(имя_типа) операнд;
В приведенной записи операнд – это переменная, или константа, или любое выражение, заключенное в скобки, имя_типа задает тип, к которому должен быть преобразован операнд.
Пример:
int i=2; unsigned long g=2,k; double d; float f;
d=(double)i*g; f=(float)d;
k=(unsigned long)(f+g); // Правильно!
В данном примере величины i, d, f+g, будут явно преобразовываться к указанным в круглых скобках типам.
