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

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

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

Процес перевірки і накладання обмежень на типи використовуваних даних називається контролем типів або типизацией програмних даних. Розрізняють такі види типізації:

  • Статична типізація - контроль типів здійснюється при компіляції.
  • Динамічна типізація - контроль типів здійснюється під час виконання.

Мова Сі підтримує статичну типізацію, і типи всіх використовуваних в програмі даних повинні бути вказані перед її компіляцією.

Розрізняють прості, складові та інші типи даних.

прості дані

Прості дані можна розділити на

Складові (складні) дані

  • Масив - індексований набір елементів одного типу.
  • Строковий тип - масив, що зберігає рядок символів.
  • Структура - набір різних елементів (полів записи), що зберігається як єдине ціле і передбачає доступ до окремих полів структури.

Інші типи даних


Програма, написана на мові Сі, оперує з даними різних типів. Всі дані мають ім'я і тип. Звернення до даних в програмі здійснюється за їхніми іменами (ідентифікаторами).

Ідентифікатор - це послідовність, що містить не більше 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 в поданні дійсного числа відповідає величина зсуву, яка визначається як
де n - кількість розрядів, що відводяться для подання ступеня числа.
  • ціле - біт, який для нормованих чисел завжди дорівнює 1, тому в деяких виставах типів цей біт опущений і приймається рівним 1.
  • мантиса - значущі розряди уявлення числа, що стоять після роздільник цілої та дробової частини в нормованої форми.

  • Розрізняють три основних типи подання дійсних чисел у мові Сі:

    Як видно з таблиці, біт ціле у типів float і double відсутня. При цьому діапазон представлення дійсного числа складається з двох діапазонів, розташованих симетрично відносно нуля. Наприклад, діапазон представлення чисел типу float можна представити у вигляді:

    Приклад. уявити число -178,125 в 32-розрядної сітці (тип float).

    Для подання числа в двійковій системі числення перетворимо окремо цілу і дробову частини:

    Для перетворення в нормовану форму здійснюється зрушення на 7 розрядів вліво).

    Для визначення ступеня числа застосовуємо зрушення:

    Таким чином, число -178,125 випаде в розрядної сітці як

    символьний тип

    логічний тип

    Логічний тип має застосовується в логічних операціях, використовується при алгоритмічних перевірках умов і в циклах і має два значення:

    int n; // Змінна n цілого типу
    double a; // Змінна a дійсного типу подвійної точності