Типи даних в Сі – клас даних, значення яких мають схожі характеристики. Тип визначає внутрішнє подання даних у пам’яті. Основні типи даних: логічний, цілочисельний, числа з плаваючою точкою, рядкові, покажчики.
Типізація
При динамічної типізації мінлива зв’язується з типом на момент ініціалізації. Виходить, що змінна в різних ділянках коду може мати різні типи. Динамічну типізацію підтримують Java Script, Python, Ruby, PHP.
Статична типізація є протилежністю динамічної. При оголошенні мінлива отримує тип, який не змінюється в подальшому. Мови Сі і Сі++ є саме такими. Цей спосіб найбільш зручний для написання складного коду, а на стадії компіляції виключається багато помилок.
Мови неформально поділяються на сильнотипизированный і слаботипизированный. Сильна типізація передбачає, що компілятор видасть помилку при розбіжності очікуваного і фактичного типів.
x = 1 + “2”; //помилка – не можна додати до числа символьний знак
Приклад слабкою типізації.
x = 1 + “2”; // 3
Перевірка узгодження типів здійснюється системою типобезопасности. Помилка типізації виникає, наприклад, при спробі використовувати число як функцію. Існують нетипизированные мови. В протилежність типізованих, вони дозволяють здійснювати будь-які операції над кожним об’єктом.