Описания
Все переменные должны быть описаны до их использования, хотя некоторые описания делаются неявно, по контексту. описание состоит из спецификатора типа и следующего за ним списка переменных, имеющих этот тип, как, например,
int lower, upper, step; char c, line[1000];
переменные можно распределять по описаниям любым образом; приведенные выше списки можно с тем же успехом записать в виде
int lower; int upper; int step; char c; char line[1000];
Такая форма занимает больше места, но она удобна для добавления комментария к каждому описанию и для последующих модификаций.
переменным могут быть присвоены начальные значения внутри их описания, хотя здесь имеются некоторые ограничения. Если за именем переменной следуют знак равенства и константа, то эта константа служит в качестве инициализатора, как, например, в
char backslash = '\\'; int i = 0; float eps = 1.0e-5;
Если рассматриваемая переменная является внешней или статической, то инициализация проводится только один раз, согласно концепции до начала выполнения программы. Инициализируемым явно автоматическим переменным начальные значения присваиваются при каждом обращении к функции, в которой они описаны. Автоматические переменные, не инициализируемые явно, имеют неопределенные значения, (т.е. мусор). Внешние и статические переменные по умолчанию инициализируются нулем, но, тем не менее, их явная инициализация является признаком хорошего стиля.
Мы продолжим обсуждение вопросов инициализации, когда будем описывать новые типы данных.