Обробка даних різного типу є головною метою будь-якої програми. Кожне з даних характеризується класом пам’яті, ім’ям, типом і значенням. Імена дозволяють ідентифікувати дані, тобто відрізняти їх між собою. Програміст обирає тип кожної величини, що використовується для подання реальних об’єктів. Тип задає множину можливих значень даних і способи їх зберігання, перетворення та використання.
Обов’язкове оголошення типу даних дозволяє компілятору робити перевірку допустимості різних конструкцій програми.
Усі типи даних мови C++ можна розділити на основні (базові) і складені. Основні типи визначені для представлення цілих, дійсних, символьних і логічних даних. На основі цих типів вводиться опис складених типів, до яких належать масиви, перелічення, функції, структури, посилання, покажчики, об’єднання і класи.
Основні типи даних (див. табл. 3.1) часто називають арифметичними, тому що їх можна використовувати в арифметичних операціях. Для опису основних типів мови C++ використовують такі службові слова:
- int (цілий);
- char (символьний);
- bool (логічний);
- float (дійсний);
- double (дійсний з подвійною точністю);
- void (порожній, не має значення).
Типи int, char, bool називають цілими, а типи float та double — дійсними з плаваючою крапкою. Код, що формує компілятор для обробки цілих величин, відрізняється від коду для величин з плаваючою крапкою.
Для уточнення внутрішнього подання та діапазону значень стандартних типів мова C++ використовує чотири специфікатори типу:
- short (короткий);
- long (довгий);
- signed (знаковий);
- unsigned (беззнаковий).
Таблиця З.1
Базові типи даних для ПК (платформа Intel)
Тип | Розмір, байт | Значення |
bool | 1 | true або false |
unsigned short int | 2 | від 0 до 65 535 |
short int | 2 | від -32 768 до 32 767 |
unsigned long int | 4 | від 0 до 4 294 967 295 |
long int | 4 | від -2 147 483 648 до 2 147 483 647 |
int (16 розрядів) | 2 | від -32 768 до 32 767 |
int (32 розряди) | 4 | від -2 147 483 648 до 2 147 483 647 |
unsigned int (16 розрядів) | 2 | від 0 до 65 535 |
unsigned int (32 розряди) | 4 | від 0 до 4 294 967 295 |
char | 1 | від 0 до 256 |
float | 4 | від 1.2е-38 до 3.4е38 |
double | 8 | від 2.2е-308 до 1.8е308 |
long double | 10 | від 3.4е-4932 до 3.4е+4932 |
У табл. 3.1 наведено діапазони значень та розміри основних типів даних (для 16-розрядного і 32-розрядного процесорів). Розмір однакового типу даних може відрізнятися на комп’ютерах різних платформ, а також може залежати від застосованої операційної системи. Тому при оголошенні тієї чи іншої змінної потрібно чітко уявляти, скільки байт вона буде займати в пам’яті ЕОМ, щоб запобігти проблемам, пов’язаним з переповненням і неправильною інтерпретацією даних. Діапазони кожного з типів (див. табл. 3.1) повинні бути перевірені для конкретного комп’ютера.