Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КТіП Лекції 20110516 (1).doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.32 Mб
Скачать
  1. Типи даних

    1. Класифікація типів даних

Кожна одиниця даних програми, тобто кожна змінна і кожна константа, має певний тип. Тип даних визначає обсяг оперативної пам'яті, яка буде виділена для збереження даних цього типу; діапазон допустимих значень, які можуть набувати змінна або константа цього типу; набір операцій, які можна виконувати над змінною або константою цього типу. Тип змінних завжди вказуються явно при їх описах, тип констант встановлюється компілятором автоматично за формою запису константи в програмі.

Типи даних С++ можна поділити на три групи: 1) скалярні, або прості – в довільний момент часу можуть мати лише одне значення; 2) агреговані, або складені – формуються за встановленими правилами з наборів скалярних типів; 3) тип «функція», що оголошує функції з заданим складом параметрів і встановленим типом значення, яке повертає функція. Арифметичні типи даних можна поділити ще на дві групи: 1) цілочислові, змінні цих типів можуть набувати тільки цілих значень; 2) дійсні – дозволяють зберігати і обробляти дійсні числа. Класифікація типів даних С++ показана на мал. 2.1.

Крім цього, типи даних можна поділити на базові і похідні. Базовими є типи int, char, float, double а також типи, утворені з них через застосування модифікаторів short, long, signed, unsigned. Особливим базовим типом є тип void – порожній або невизначений тип, який використовується, зокрема, в оголошеннях функції. Похідними вважають вказівникові типи, агреговані типи і функції. Всі вони формуються з використанням базових типів.

Мал. 2.1. Класифікація типів даних С++

    1. Цілочислові типи

Основним типом даних, який використовується при роботі з цілими числами, є тип int (від англ. integer – ціле число). До типу int можна застосовувати модифікатори long (довге ціле), short (коротке ціле). Діапазони допустимих значень цілих типів даних компілятора Microsoft Visual Studio 2010 наведені в таблиці 2.1. Для інших компіляторів розмір в байтах та діапазон значень може відрізнятися.

Тип int ті його модифікації є знаковими типами – один біт (здебільшого найстаршій) двійкового коду числа займає знак. Прийнято, що знак плюс позначається нулем, знак мінус – одиницею. За замовчуванням змінні є знаковими (позначені необов’язковим модифікатором signed). Якщо певні дані набувають лише додатних значень, то можна вдвічі збільшити діапазон допустимих значень змінних оголосивши їх з модифікатором unsigned (беззнаковий). У беззнакових змінних біт знака розглядається як звичайний біт даних. Модифікатор unsigned можна використовувати разом з модифікаторами long і short.

Таблиця 2.1. Діапазони допустимих значень цілих типів

Тип

Розмір в байтах

Діапазон значень

int

4

-2 147 483 648 … 2 147 483 648

short int

2

32 768 … 32 767

unsigned short int

2

0 … 65 565

long int

4

-2 147 483 648 … 2 147 483 648

unsigned long int

4

0 … 4 294 967 295

long long int

8

-263 … 263-1

unsigned long long int

8

0 … 264-1

char

1

-128 … 127

unsigned char

1

0 … 255

Цілочислові константи можна записувати в трьох формах – десятковій, вісімковій, шістнадцітковій (див. розділ 1.6). Тип цілочислової константи встановлюється за її значенням і формою запису по таким правилам: 1) якщо значення константи потрапляє в діапазон значень типу int, то така константа отримує тип int; 2) інакше, якщо це беззнакова вісімкова чи шистнадцяткова константа, яка потрапляє в діапазон значень типу unsigned int, їй присвоюється тип unsigned int; 3) інакше, якщо значення константи потрапляє в діапазон значень типу long int, то ця константа отримує тип long int; 4) інакше, якщо константа беззнакова і потрапляє в діапазон значень типу unsigned long int, вона отримує цей тип; 5) інакше фіксується помилка.

Можна модифікувати тип константи. Для цього до числа долучають кінцеві символи u ( або U) та l (або L). Символ u/U вказує, що константі має бути присвоєний модифікатор unsigned, символ l/L розширює константу до розміру типу long int. Можна поєднувати обидва символи модифікації типу в довільному порядку. Наприклад, 0x1bd83ul – константа отримає тип unsigned long int.

Мова С++ відносить тип даних char (від англ. character – літера) до цілочислових типів. Через це тип даних char сумісний з усіма арифметичними типами.

До цілочислових констант належать також символьні константи. Символьна константа – це довільний, допустимий для встановленої на комп’ютері кодової таблиці графічний символ або ескейп-послідовність, записані в апострофах. Значенням символьної константи є числове значення коду символу. Саме код символу бере участь у всіх операціях, в які ступає символьна константа. Одну за значенням символьну константу можна записати декількома способами: ‘*’ – символьне зображення, ‘\052’ – вісімкова ескейп-послідовність, ‘\Х2А’ – шістнадцяткова ескейп-послідовність.

Логічний тип даних теж належить до цілих типів. Змінні цього типу можуть набувати два значення – true, false. В якості логічних змінних можна також використовувати змінні будь-якого цілочислового типу. При цьому нульове значення відповідає значенню false, будь-яке ненульове – значенню true.

В заголовному файлі limits записано набір макроконстант (іменованих констант), значення яких дорівнюють мінімальним і максимальним значенням, встановленим для цілих типів у даній системі програмування. Макроконстанти деяких граничних цілочислових значень наведені в таблиці 2.2.

Таблиця 2.2. Макроконстанти деяких граничних цілочислових значень

Ім’я макроконстанти

Значення макроконстанти

CHAR_MIN, CHAR_MAX

Найменше і найбільше значення даних з типом char

SCHAR_MIN, SCHAR_MAX

Найменше і найбільше значення даних з типом signed char

INT_MIN, INT_MAX

Діапазон значень даних з типом int

SHRT_MIN, SHRT_MAX

Діапазон значень даних з типом short int

LONG_MIN, LONG_MAX

Діапазон значень даних з типом long int

LLONG_MAX

Діапазон значень даних з типом long long int