Константы
Примеры объявления переменных
Объявление переменной
Структура программы
Программа на языке С++ состоит из директив препроцессора, указаний компилятору, объявлений переменных и/или констант, объявлений и определений функций.
Объявление переменной задает имя и атрибуты переменной. Атрибутами переменной могут быть тип, количество элементов (длямассивов), спецификация класса памяти, а также инициализатор. Инициализатор – это константа соответствующего типа, задающая значение, которое присваивается переменной при создании.
Объявление переменной имеет следующий синтаксис:
[<спецификация класса памяти>] <тип> <имя> [= <инициализатор>]
[,<имя> [= <инициализатор>] ...];
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 модифицирует тип, т.е. ограничивает возможное использование объекта, но не указывает способ размещения константного объекта. Простым и типичным использованием константы является тот случай, когда значение константы известно во время компиляции и под неё не требуется выделение памяти. Для массива констант, как правило, требуется выделение памяти, так как, в общем случае, компилятор не в состоянии определить, к какому элементу массива происходит обращение в выражении.