Объявления
Все переменные должны быть объявлены раньше, чем будут использоваться, при этом некоторые объявления могут быть получены неявно - из контекста. Объявление специфицирует тип и содержит список из одной или нескольких переменных этого типа, как, например, в
int lower, upper, step; char с, line[1000];
Переменные можно распределять по объявлениям произвольным образом, так что указанные выше списки можно записать и в следующем виде:
int lower; int upper; int step; char c; char line[1000];
Последняя форма записи занимает больше места, тем не менее она лучше, поскольку позволяет добавлять к каждому объявлению комментарий. Кроме того, она более удобна для последующих модификаций.
В своем объявлении переменная может быть инициализирована, как, например:
char esc = '\\'; int i = 0; int limit = MAXLINE+1; float eps = 1.0e-5;
Инициализация неавтоматической переменной осуществляется только один раз - перед тем, как программа начнет выполняться, при этом начальное значение должно быть константным выражением. Явно инициализируемая автоматическая переменная получает начальное значение каждый раз при входе в функцию или блок, ее начальным значением может быть любое выражение. Внешние и статические переменные по умолчанию получают нулевые значения. Автоматические переменные, явным образом не инициализированные, содержат неопределенные значения ("мусор”).
К любой переменной в объявлении может быть применен квалификатор const для указания того, что ее значение далее не будет изменяться.
const double е = 2.71828182845905; const char msg[] = "предупреждение: ";
Применительно к массиву квалификатор const указывает на то, что ни один из его элементов не будет меняться. Указание const можно также применять к аргументу- массиву, чтобы сообщить, что функция не изменяет этот массив:
int strlen(const char[]);
Реакция на попытку изменить переменную, помеченную квалификатором const зависит от реализации компилятора.