При використанні простих типів операція перетворення типу може записуватися одним із двох еквівалентних способів: (тип)x або тип(x) , де x - вираз, а тип - ім’я типу, до якого виконується перетворення.
C++ допускає запис приведення до будь-якого типу. Відповідальність за правильне використання цієї операції покладена на програміста.
Наведемо приклад, коли запис явного перетворення типу має сенс:
int a=2;
float x=3.5;
a = a + (int)x;
Останній оператор буде виконуватися швидше, у порівнянні з більш простим оператором:
a = a + x;
Це пов’язано з тим, що замість двох операцій перетворення типу (int→float та float→int) виконується тільки одне перетворення виду (float→ int).
Операцію приведення типу доводиться явно записувати, якщо потрібно одержати результат дійсного типу від ділення цілих значень. Наприклад, при виконанні таких рядків програми
int i=3, k=4;
float x;
x = i/k ;
отримаємо значення x = 0. Якщо ж, все-таки потрібно одержати точне значення x = 0.75, другий рядок необхідно записати так:
x = (float)i/(float)k;
або хоча б так:
x = i/(float)k;
Вправи
Вправа 1
До якого типу будуть віднесені наступні константи:
127 , "Borland C++" , 1.602e-19 , 'A' , "10000" , 'ab' ,
'>' , "#" , 12760 , -128 , 100 000 , 2 500 000 000 , 0x1200 , 0xABC , 127.0 , 0 , 0.0 , 3e-400
Вправа 2
Напишіть програму, що виводить величину машинної похибки і довжину мантиси у бінарному зображенні числа для дійсних типів float, double, long double.
Вправа 3
Напишіть програму для обчисленні факторіалу n! й зробіть таке дослідження. Чому дорівнює найбільше значення n, для якого можна обчислити факторіал при умові, що для обчислення застосовано тип: а) unsigned int; б) float; в) double; г) long double.
Вправа 4
Нехай m - кількість байтів, яка відповідає розміру певного цілочислового типу. Напишіть універсальну формулу, яка визначає інтервал можливих значень для цього типу. Передбачити випадки, коли тип є знаковим або беззнаковим.
Вправа 5
Нижче наведено початок програми. Допишіть програму таким чином, щоб вона виводила на екран розмір у байтах кожної з змінних, які оголошені в програмі. Застосувати операцію sizeof.
#include <syst.h>