Концепция типов данных является важнейшей стороной любого языка программирования. Схема типов данных для языка Си представлена на рисунке 2.
Рисунок 2 – Типы данных
В Си имеется четыре базовых арифметических (числовых) типа данных. Из них два целочисленных – char, int – и два плавающих (вещественных) – float и double. Кроме того, в программах можно использовать некоторые модификации этих типов, описываемых с помощью служебных слов – модификаторов. Существуют два модификатора размера – short (короткий) и long (длинный) – и два модификатора знаков – signed (знаковый) и unsigned (беззнаковый). Знаковые модификаторы применяются только к целым типам. Тип величины связан с ее формой внутреннего представления, множеством принимаемых значений и множеством операций, применимых к этой величине. В таблице 1 перечислены арифметические типы данных Си, указан объем занимаемой памяти и диапазон допустимых значений. Размер типа int и unsigned int зависит от размера слова операционной системы, в которой работает компилятор Си. В 16-разрядных ОС этим типам соответствуют 2 байта, в 32-разрядных – 4 байта.
Если не указан базовый тип, то по умолчанию подразумевается int; если не указан модификатор знаков, то по умолчанию подразумевается signed; с базовым типом float модификаторы не употребляются; модификатор short применим только к базовому типу int.
В Си величины типа char могут рассматриваться в программе и как символы, и как целые числа. Все зависит от способа использования этой величины.
Таблица 1 – Арифметические типы данных языка Си
Среди базовых типов нет логического типа данных. Между тем в Си используются логические операции и логические выражения. В качестве логических величин в Си выступают целые числа. Интерпретация их значений в логические величины происходит по правилу: равно нулю – ложь, не равно нулю – истина.