Имеется возможность заставить выражение принять определенный тип с помощью оператора принудительных преобразований. Эта операция имеет следующий вид:
(тип) выражение
где тип - это один из стандартных типов данных С или определяемый пользователем тип. Например, если необходимо, чтобы выражение х / 2 имело тип float (остаток сохранится), следует написать:
(float) х / 2
Оператор принудительных преобразований - это унарный оператор, имеющий такой же приоритет, как и остальные унарные операторы.
Хотя принудительные преобразования редко используются при программировании на С, бывают случаи, когда они просто необходимы. Например, необходимо использовать целое число для управления циклом и, кроме этого, требуется вычислять дробную часть от деления этого числа на какое-либо другое, как в следующем примере:
#include <stdio.h>
/* выводит i и i/2 с дробной частью */
int main (void)
{
int i;
for(i=1; i<=100; ++i )
printf ("%d / 2 is: %f\n", i, (float) i/2);
return 0;
}
Без принудительного преобразования (float) будет вычисляться только целая часть, а благодаря (float) получим также и дробную часть.