Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 1С.docx
Скачиваний:
0
Добавлен:
03.01.2020
Размер:
27.78 Кб
Скачать

1.9. Приведение типов.

Операция явного преобразования типов.

1. Формат операции

(имя типа) операнд;

В качестве операнда могут использоваться константы, переменные, выражения. В результате выполнения операции значение операнда преобразуется к указанному типу.

Примеры:

long(17), float(21), int(a + b);

2. Почти для каждой из бинарных операций операнды могут иметь различные типы. Однако не всегда необходимо в явном виде указывать преобразования типов. Если операнды бинарной операции имеют различные типы, то компилятор выполняет преобразование типов автоматически, т.е. приводит оба операнда к одному типу. Такие преобразования выполняются по определенным правилам; эти правила определены стандартом языка Си.

Среди преобразований типов выделяют

- преобразования в арифметических выражениях;

- преобразования при присваиваниях; заметим, что для операции присваивания значения выражения из правой части всегда приводится к типу переменной из левой части, независимо от соотношения этих типов.

-преобразования указателей (будут рассмотрены в дальнейшем).

Необходимо различать преобразования, изменяющие внутреннее представление данных и преобразования, изменяющие только интерпретацию внутреннего представлении. Например, преобразование unsigned int в int не требует преобразования внутреннего представления, а преобразования типа int в тип float (или наоборот) требует изменения длины участка памяти и кодировки.

Ниже приведены арифметические преобразования типов, гарантирующие сохранение значения:

signed char -> short -> int -> long;

float -> double -> long double;

unsigned char -> unsigned short -> unsigned int -> unsigned long.

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