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