Константа – именованная область памяти, используемая для хранения значений, не изменяемых в ходе выполнения программы.
Сохранение в памяти значений как констант, так и других объектов неразрывно связано с типами данных (типами памяти). Тип константы определяется компилятором по значению и формату, используемому при записи константы в исходном коде.
Константы делятся на следующие группы:
· целые (целочисленные);
· вещественные (с плавающей точкой);
· перечислимые;
· символьные;
· строковые;
· именованные;
· зарезервированные (встроенные);
· нулевой указатель.
Целые константы. Они могут задаваться в десятичной, восьмеричной и шестнадцатеричной системах счисления.
Название
Определение
Примеры
Десятичная
константа
Последовательность десятичных цифр, начинающаяся не с нуля (0), если это число не 0
8;
0;
Восьмеричная
константа
Последовательность восьмеричных цифр, которым предшествует нуль (0)
026;
034;
Шестнадцатеричная константа
Последовательность шестнадцатеричных цифр, которым предшествуют символы ”0х” или ”0Х”
0хА; 0Х00F; 0х123
Если требуется сформировать отрицательную целую константу, то используют знак «–» перед записью константы (который будет называться унарным минусом).
Например:
-0х2А; -033; -16.
Каждой целой константе присваивается тип, определяющий вид преобразований, которые должны быть выполнены, если константа используется в выражениях. Для того чтобы любую целую константу определить типом long, достаточно в конце константы поставить букву «l» или «L».
Например:
5l; 6l; 128L; 0105L; 0X2A11L.
Вещественные константы. В общем случае они состоят из:
· цифр (десятичное целое);
· точки десятичной;
· цифр, соответствующих дробной части числа (десятичное дробное);
· знаков десятичного порядка (основания 10), задаваемых символом e или Е;
· необязательного суффикса f (либо F) или l (либо L), влияющего на точность представления приближённых чисел.
Название
Вид
Примеры
Константы с
фиксированной точкой
[+/-][цифры].[цифры]
135.7; .0001;
Константы с
плавающей
точкой
[+/-][цифры][.][цифры]E|e[+|-][цифры]
1.5е5;
-8.2E-6;
6.01е-5; 5Е3
Вещественные константы имеют при отсутствии каких-либо суффиксов тип double. Они будут принадлежать к типу float при указании суффикса f или F. Аналогичным образом суффикс l или L определяет тип long double.
Перечислимые константы. Это обычные целые константы, которым приписаны уникальные и удобные для использования обозначения. Данные константы вводятся с помощью ключевого слова enum.
Синтаксис:
еnum ТипПеречисления {СписокИменованныхКонстант};
где: enum – ключевое слово;
ТипПеречисления – необязательный идентификатор;
СписокИменованныхКонстант – список вида:
ИмяКонстанты1[=ВыражениеИлиЦелоеЗначение1],
ИмяКонстанты2[=ВыражениеИлиЦелоеЗначение2],
..............
ИмяКонстантыR[=ВыражениеИлиЦелоеЗначениеR];
Например:
enum {winter, spring, summer, autumn};
Здесь определены имена констант winter, spring, summer и autumn, которые имеют по умолчанию целочисленные значения соответственно 0, 1, 2 и 3.
enum Day {Sunday, Monday, Tuesday, Wednesday,
Thursday, Friday, Saturday};
В данном случае определены тип перечисления Day и набор нумераторов Sunday, Monday, Tuesday, Wednesday, Thursday, Friday и Saturday.
Здесь определены тип перечисления team и нумераторы giants=0, cubs=3, dodgers=1.
Символьные константы. Они оформляются в программе как один или несколько символов, заключенных в апострофы (' '). Символьные константы, состоящие из одного символа, имеют тип char и занимают в памяти один байт, символьные константы, состоящие из двух символов, имеют тип int и занимают два байта. Управляющая последовательность (см. лабораторную работу №2) рассматривается как одиночный символ и ее допустимо использовать в символьных константах.
Например:
'A'; '\t'; '\x0A'.
Строковые константы (литеры). Они представляют собой последовательность символов (включая строковые и прописные буквы русского и латинского алфавита, а также цифры) заключенные в кавычки (" "). Внутри строк также могут использоваться управляющие последовательности.
Например:
"С++ – язык программирования"
"\n Я изучаю дисциплину \"Программирование\"".
Именованные константы. Это идентификатор, которому присваивается постоянное значение (константа).
В языке С++ существуют следующие способы введения именованных констант:
1) с помощью препроцессорной директивы:
#define ИмяКонстанты Значение
Например:
#define PI 3.141596
#define Symbol 'Y'
2) с использованием квалификатора const при инициализации:
const Тип ИмяКонстанты=Значение;
Например:
const float E=2.7182;
const char NO='N';
Зарезервированные константы – это константы, имена которых стандартизированы, а к значениям можно обращаться без предварительного определения. Для использования таких констант необходимо подключить соответствующие библиотечные файлы.
Например:
INT_MAX; INT_MIN; (файл <limits.h>);
FLT_MIN; DBL_MAX (файл <float.h>).
Нулевой указатель. При использовании аппарата указателей часто применяют неарифметическую константу, именуемую нулевым указателем. Она обозначается ключевым словом NULL.