Константы в отличие от переменных не могут изменяться программой. Записываются они по следующим правилам. Вещественныеконстанты можно записать в обычной форме, используя символ “.”(точка) для разделения целой и дробной частей
(5.,-12.345, 0.00987) или в экспоненциальной форме (0.5e1,
-0.12345е+2, 987е-5). Константы целого типа можно записать в десятичной (-26) или шестнадцатеричной (0x1A) системе счисления. Символьные константы записываются в одинарных кавычках (‘5’, ‘А’, ‘\t’,’\r’, ‘\”’, ‘\’’,’\\’). Последние пять констант представляют собой следующие символьные константы с обратным слэшем: горизонтальная табуляция, возврат каретки, двойная кавычка, одинарная кавычка и символ “обратный слэш”. Строковые константы записываются в двойных кавычках (“1234”, “Это строка”, “The first number”). Как и в других языках программирования, грамматический контроль строк не выполняется.
Константы можно определить одним из следующих способов:
· непосредственно записать в выражении;
· с помощью ключевого слова const, например, const SIZE=10. И тогда в выражении (в одном или нескольких) вместо константы 10 указываем идентификатор SIZE. Этот способ имеет следующее преимущество. Если одна и та же константа в программе встречается несколько раз, то для её изменения не надо искать каждое появление такой константы, а достаточно изменить её значение один раз при объявлении;
· с помощью директивы #define, например, #define SIZE 10. Директива заменяет каждое появление символов SIZE, образующих слово, на 10. Например, операторы
int SIZE2=5;
cout<<(SIZE+SIZE2);
выведут число 15. Идентификатор SIZE2 определяет не константу, а переменную с начальным значением, которое в дальнейшем можно изменить. В идентификаторе SIZE2 последовательность символов SIZE не меняется на 10 ни первый, ни второй раз, а замена выполняется только в cout для SIZE. В отличие от второго способа, в этом случае SIZE можно переопределить, т. е. в любом месте программы можно записать новую директиву для определения SIZE, например, #define SIZE 2.