Все переменные должны быть объявлены раньше, чем будут использоваться. Объявление специфицирует тип и содержит список из одной или нескольких переменных этого типа.
int lower, upper, step;
char с, line [1000];
int i;
В своем объявлении переменная может быть инициализирована.
К любой переменной в объявлении может быть применен квалификатор const для указания того, что ее значение далее не будет изменяться.
1. #include <stdio.h>
2. int main(void)
3. {
4. const double e = 2.71828182845905;
5. printf("Число Эйлера: %lf\n", e);
6.
7. e = 2.718282; /* Попытаемся изменить переменную */
8.
9. return 0;
10. }
При компилации выдается ошибка о том, что переменная e назначена только для чтения.
test.c: In function 'main':
test.c:7: error: assignment of read-only variable 'e'
int i = 0;
int limit = MAXLINE + 1;Инициализация неавтоматической переменной осуществляется только один раз — перед тем, как программа начнет выполняться, при этом начальное значение должно быть константным выражением. Явно инициализируемая автоматическая переменная получает начальное значение каждый раз при входе в функцию или блок, ее начальным значением может быть любое выражение. Внешние и статические переменные по умолчанию получают нулевые значения. Автоматические переменные, явным образом не инициализированные, содержат неопределенные значения ("мусор").
К любой переменной в объявлении может быть применен квалификатор const для указания того, что ее значение далее не будет изменяться.
const double e = 2.71828182845905;
const char msg[] = "предупреждение: ";Применительно к массиву квалификатор const указывает на то, что ни один из его элементов не будет меняться. Указание const можно также применять к аргументу-массиву, чтобы сообщить, что функция не изменяет этот массив:
int strlen(const char[]);Реакция на попытку изменить переменную, помеченную квалификатором const, зависит от реализации компилятора.
1. #include <stdio.h>
2. int main(void)
3. {
4. const double e = 2.71828182845905;
5. printf("Число Эйлера: %lf\n", e);
6.
7. e = 2.718282; /* Попытаемся изменить переменную */
8.
9. return 0;
10. }
При компилации выдается ошибка о том, что переменная e назначена только для чтения.
test.c: In function 'main':
test.c:7: error: assignment of read-only variable 'e'
Комментариев нет:
Отправить комментарий