Константы

Примеры объявления переменных

Объявление переменной

Структура программы

Программа на языке С++ состоит из директив препроцессора, указаний компилятору, объявлений переменных и/или констант, объявлений и определений функций.

Объявление переменной задает имя и атрибуты переменной. Атрибутами переменной могут быть тип, количество элементов (длямассивов), спецификация класса памяти, а также инициализатор. Инициализатор – это константа соответствующего типа, задающая значение, которое присваивается переменной при создании.

Объявление переменной имеет следующий синтаксис:

[<спецификация класса памяти>] <тип> <имя> [= <инициализатор>]

[,<имя> [= <инициализатор>] ...];

int x; // Объявление переменной целого типа без инициализатора
double y = exp(1); // Переменная вещественного типа инициализируется числом e. // exp(x) – функция, вычисляющая ex.
int a, b = 0; // Объявление двух переменных целого типа. Переменная b инициализируется значением 0.

В языке С++ нет ограничений на количество символов в имени. Однако некоторые части реализации (в частности, компоновщик) недоступны автору компилятора, и они иногда накладывают такие ограничения.

В языке С++ введена концепция определяемых пользователем констант для указания на то, что значение нельзя изменить непосредственно. Это может быть полезно в нескольких отношениях. Например, многие объекты не меняются после инициализации; использование символических констант приводит к более удобному в сопровождении коду, чем применение литералов непосредственно в тексте программы; указатели часто используются только для чтения, но не для записи; большинство параметров функций читаются, но не перезаписываются.

Чтобы объявить объект константой, в объявление нужно добавить ключевое слово const. Так как константе нельзя присваивать значения, она должна быть инициализирована.

const int a = 100; const int b[] = {1, 2, 3, 4, 5}; const int c; // a является константой // Все b[i] являются константами // Ошибка – нет инициализатора!

Типичным является использование констант в качестве размера массивов и меток в инструкции case.

Отметьте, что const модифицирует тип, т.е. ограничивает возможное использование объекта, но не указывает способ размещения константного объекта. Простым и типичным использованием константы является тот случай, когда значение константы известно во время компиляции и под неё не требуется выделение памяти. Для массива констант, как правило, требуется выделение памяти, так как, в общем случае, компилятор не в состоянии определить, к какому элементу массива происходит обращение в выражении.