Существуют 3 вида именнованных констант:
- имя любого массива или функции;
- имена членов перечисления;
- любое имя любого типа, в определении которого присутствует модификатор const.
const i = 5;
const char *ip = &i;
Поскольку модификация такого объекта-константы запрещена, он должен быть инициализирован.
const int *ip; //константой является объект, на который указывает указатель;
int* const ip; //сам указатель является константой
const char *pc = "Это строка";
pc[2] = 'a'; //ошибка
pc = "Это другая строка"; //верно
char* const pc = "Это строка";
pc[2] = 'a'; //верно
pc = "Это другая строка"; //ошибка
Использование const предпочтительнее по сравнению с #define, так как использование константы контролирует компилятор.
Перечисления
Спецификатор enum позволяет программисту создавать собственные типы.
enum weekDays {Monday, Tuesday, Wensday, Thursday, Friday};
Идентификаторы перечисления представляют собой целочисленные переменные, которые по умолчанию имеют значения 0,1,..., если не указаны другие значения.
weekDays days;
Переменная days теперь может принимать одно из 5 значений.
days = Wensday;
Пример 2.
enum colors {Red=2, Green=3, Grey};
Если задано значение впереди стоящему члену перечисления, то Grey по умолчанию будет равен 4.
Пример 3.
enum VIDEO_BASE_ADDRES { VGA_EGA=0xA000000, CGA=0xB800000,
MONO=0xB000000};