четверг, 27 февраля 2014 г.

Объявления

Все переменные должны быть объявлены раньше, чем будут использоваться. Объявление специфицирует тип и содержит список из одной или нескольких переменных этого типа.
int lower, upper, step; 
char с, line [1000];
int i;
В своем объявлении переменная может быть инициализирована.
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'

Комментариев нет:

Отправить комментарий