Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
mL_3_Osn_tip_07.doc
Скачиваний:
5
Добавлен:
29.04.2019
Размер:
155 Кб
Скачать
☆

Преобразование типов при выполнении операций присваивания

В операциях присваивания тип значения, которое присваивается, преобразуется к типу переменной, получающей это значение. Допускается преобразования целых и плавающих типов, даже если такое преобразование ведет к потере информации.

Пример: 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, будут явно преобразовываться к указанным в круглых скобках типам.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]