Язык С++ и программирование на нем. Рейзлин В.И. - 53 стр.

UptoLike

Составители: 

55
Теперь имя TYPE можно использовать, например, в прототипах:
double fun (int, int, TYPE);
15. Правила преобразования стандартных типов
В любых случаях выполняются два преобразования:
имя массива преобразуется к указателю на его первый элемент;
имя функции преобразуется к указателю на эту функцию.
15.1. Явные преобразования
Разрешены любые преобразования стандартных типов одного к
другому. При преобразовании более длинного типа к более короткому
происходит потеря разрядов; при преобразовании более короткого це-
лочисленного типа к более длинному свободные разряды заполняются 0
(если короткий тип беззнаковый), или происходит размножение зна-
кового разряда (для типа со знаком).
Разрешены любые преобразования друг на друга указателей, а
также ссылок. Явное преобразование типов делается посредством опе-
рации приведения типов (cast), которая имеет две формы:
(имя_типа) операнд // Традиционная форма;
или
имя_типа (операнд) // функциональная форма.
Здесь имя_типа задаёт тип, а операнд является величиной, кото-
рая должна быть преобразована к заданному типу.
Отметим, что во второй форме имя_типа должно быть простым
идентификатором, например, полученным с помощью typedef.
Примеры:
double d = (double)5;
int i = int(d);
int *ip = &i;
float *fp = (float*) ip;
typedef float* FP;
fp = FP(ip);
15.2. Неявные преобразования стандартных базовых ти-
пов
Для стандартных базовых типов компилятор может выполнять
любые преобразования одного типа к другому: