Типи даних в мові Сі

Тип даних визначає безліч значень, набір операцій, які можна застосовувати до таких значень і спосіб реалізації зберігання значень і виконання операцій.
Процес перевірки і накладання обмежень на типи використовуваних даних називається контролем типів або типизацией програмних даних. Розрізняють такі види типізації:
- Статична типізація - контроль типів здійснюється при компіляції.
- Динамічна типізація - контроль типів здійснюється під час виконання.
Мова Сі підтримує статичну типізацію, і типи всіх використовуваних в програмі даних повинні бути вказані перед її компіляцією.
Розрізняють прості, складові та інші типи даних.
прості дані
Прості дані можна розділити на
Складові (складні) дані
- Масив - індексований набір елементів одного типу.
- Строковий тип - масив, що зберігає рядок символів.
- Структура - набір різних елементів (полів записи), що зберігається як єдине ціле і передбачає доступ до окремих полів структури.
Інші типи даних
Програма, написана на мові Сі, оперує з даними різних типів. Всі дані мають ім'я і тип. Звернення до даних в програмі здійснюється за їхніми іменами (ідентифікаторами).
Ідентифікатор - це послідовність, що містить не більше 32 символів, серед яких можуть бути будь-які літери латинського алфавіту a - z, A - Z, цифри 0 - 9 і знак підкреслення (_). Перший символ ідентифікатора не повинен бути цифрою.
Незважаючи на те, що допускається ім'я, що має до 32 символів, визначальне значення мають тільки перші 8 символів. Крім імені, всі дані мають тип. Вказівка типу необхідно для того, щоб було відомо, скільки місця в оперативній пам'яті буде займати цей об'єкт.
Компілятор мови Сі дотримується строгої відповідності великих і малих літер в іменах ідентифікаторів і лексем.
речові дані
Речовий тип призначений для представлення дійсних чисел. Речові числа представляються в розрядної сітці машини в нормованої форми.
Нормована форма числа передбачає наявність однієї значущої цифри (НЕ 0) до поділу цілої і дробової частини. Таке уявлення множиться на підставу системи числення у відповідній мірі. Наприклад, число 12345,678 в нормованої форми можна уявити як
12345,678 = 1,2345678 × 10 4
Число 0,009876 в нормованої форми можна уявити як
У двійковій системі числення означає розряд, що стоїть перед роздільником цілої і дробової частини, може бути дорівнює лише 1. У разі якщо число не можна уявити в нормованої форми (наприклад, число 0), що означає розряд перед роздільником цілої і дробової частини дорівнює 0.
Значущі розряди числа, які стоять в нормованої форми після роздільник цілої та дробової частини, називаються мантиссой числа.
У загальному випадку дійсне число в розрядної сітці обчислювальної машини можна представити у вигляді 4 полів.
- знак - біт, що визначає знак дійсного числа (0 для позитивних чисел, 1 - для негативних).
- ступінь - визначає ступінь 2, на яку потрібно помножити число в нормованої форми. Оскільки ступінь 2 для числа в нормованої форми може бути як позитивною, так і негативною, нульовий ступеня 2 в поданні дійсного числа відповідає величина зсуву, яка визначається як
Розрізняють три основних типи подання дійсних чисел у мові Сі:
Як видно з таблиці, біт ціле у типів float і double відсутня. При цьому діапазон представлення дійсного числа складається з двох діапазонів, розташованих симетрично відносно нуля. Наприклад, діапазон представлення чисел типу float можна представити у вигляді:
Приклад. уявити число -178,125 в 32-розрядної сітці (тип float).
Для подання числа в двійковій системі числення перетворимо окремо цілу і дробову частини:
Для перетворення в нормовану форму здійснюється зрушення на 7 розрядів вліво).
Для визначення ступеня числа застосовуємо зрушення:
Таким чином, число -178,125 випаде в розрядної сітці як
символьний тип
логічний тип
Логічний тип має застосовується в логічних операціях, використовується при алгоритмічних перевірках умов і в циклах і має два значення:
int n; // Змінна n цілого типу
double a; // Змінна a дійсного типу подвійної точності