Переменные


Для хранения данных в языке программирования Си используются переменные. Переменная может иметь тип, имя и значение.

Перед использованием любую переменную надо определить. Синтаксис определения переменной выглядит следующим образом:

1
тип_переменной имя_переменной;
Например, простейшее определение переменной:

1
int number;
Здесь определена переменная number, которая имеет тип int. Поскольку определение переменной представляет собой отдельное выражение, то после него ставится точка с запятой.

Имя переменной может представлять последовательность символов латинского алфавита, чисел и знака подчеркивания. При этом имя должно начинаться либо с алфавитного символа, либо со знака подчеркивания.

1
int _number33;
Нередко компиляторы имеют ограничение на длину названий переменных, например, для некоторых компиляторов длина имени переменной не должна превышать 31 символа, для других компиляторов ограничение может быть более жестким.

Также стоит учитывать, что C - регистрозависимый язык, а это значит, что регистр символов имеет большое значение. То есть следующем коде будут определяться две разные переменные:

1
2
int number;
int Number;
Поэтому переменная Number не будет представлять то же самое, что и переменная number.

Кроме того, в языке есть ряд зарезервированных слов, которые не могут использоваться в качестве имени переменной. Их не так много: auto, break, case, char, const, continue, default, do, double, else, enum, extern, float, for, goto, if, int, long, register, return, short, signed, sizeof, static, struct, switch, typedef, union, unsigned, void, volatile, while.

Также нельзя объявить больше одной переменной с одним и тем же именем, например:

1
2
int number;
int number;
Подобное определение вызовет ошибку на этапе компиляции.

При определении переменных каждой из них присваивается неопределенное значение. Но в дальнейшем мы можем присвоить ей конкретное значение:

1
2
int number;
number = 2;
1
2
3
4
5
6
7
8
9
#include <stdio.h>

int main(void)
{
int number;
number = 2;
printf("number = %d \n", number);
return 0;
}
Для вывода числа на консоль используется спецификатор %d, вместо которого вставляется значение переменной number. Таким образом, мы получим следующий консольный вывод:

number = 2
Однако также можно сразу при определении переменной дать ей некоторое начальное значение. Данный прием называется инициализацией:

1
2
3
4
5
6
7
8
#include <stdio.h>

int main(void)
{
int number = 2;
printf("number = %d \n", number);
return 0;
}