Переменные – поименованные данные, которые могут изменяться в процессе выполнения программы.
В
языке Си все переменные должны быть объявлены явно.
тип идентификатор[=значение];
Тип данных определяет
формат представления переменной в компьютере и множество операций, которые могут выполняться над этой переменной.
Идентификатор — в данном случае это имя переменной. В одном операторе объявления могут быть объявлено несколько переменных одного типа путем перечисления идентификаторов, отделенных друг от друга запятыми.
Пример 1
Переменные при объявлении могут быть инициализированы.
Для инициализации переменной необходимо при объявлении переменной определить значение.
Пример 2
На рис. 1 приводятся основные типы данных языка Си.
Рис. 1. Основные типы данных языка Си
Размер данных определенного типа, а также
диапазон значений, которые они могут принимать, зависят от реализации и не зафиксированы в языке Си. Это позволяет компилятору языка Си генерировать программы, выполняемые на конкретном процессоре с максимальной эффективностью. В файлах
<limits.h> и
<float.h> содержится информация о фактических размерах и диапазонах значений для различных компиляторов и различных процессоров.
Размер данных типа char равен одному байту данного компьютера (как правило 1 байт = 8 бит).
Размер данных типа short меньше или равен размеру int.
Данные типа int обычно имеют размер машинного слова.
Данные типа long , соответственно, имеют размер больший или равный размеру int.
В общем случае, для компьютера, имеющего размер разрядной сетки, равный n, значение максимального целого числа со знаком (тип
int ) равно

, а наибольшее беззнаковое целое (тип
unsigned int) равно

.
Примечание 1
Размер каждого типа данных на конкретном компьютере можно узнать, используя операцию sizeof(). Например, sizeof(int).
Размещение в памяти данных целого типа
В прим. 3 показано, как хранятся данные целого типа в памяти гипотетической машины с 8-разрядным байтом и 32-разрядным машинным словом.
Пример 3
signed char a = 5, b = -5;
Данные типа char занимают один байт – 8 разрядов:
+5 0 0000101 (прямой код)
-5 1 1111011 (дополнительный код)
unsigned signed char a = 5;
5 00000101
signed int a = 5, b = -5;
Данные типа int занимают одно машинное слово – 4 байта – 32 разряда:
+5 0 0000000000000000000000000000101 (прямой код)
-5 1 1111111111111111111111111111011 (дополнительный код)