Данные, обрабатываемые компилятором, - это константы и переменные.
Константы – это данные, которые устанавливаются равными определенным значениям еще до выполнения программы и сохраняют их на протяжении выполнения всей программы.
Переменные – это данные, которые могут изменять свои значения в процессе выполнения программы.
Все переменные в языке С++ должны быть описаны явно. Описание переменной включает спецификацию типа, имя переменной, ряд необязательных модификаторов, задающих или особенности внутреннего представления переменной, или класс ее хранения. При описании возможно задание начального значения переменной.
Тип константы распознается компилятором по ее записи в программе.
Константы в языке С++ можно задавать либо в явном виде (т.е. указывать непосредственно значение константы), либо использовать идентификатор, которому присваивается значение константы.
Один из способов определения константы с помощью идентификатора – использование директивы препроцессора define, указанной в заголовке программы по следующей форме:
#define имястрока
где имя – идентификатор; строка – любая последовательность символов, отделяемая от имени хотя бы одним пробелом и заканчиваемая в текущей строке. При обработке каждое вхождение имени заменяется на строку.
Если строка должна быть расположена на нескольких строках, то за последним непробельным символом в строке указывается знак \ (обратный слеш).
Примеры:
#define I 3 // ставит в соответствие имени I число 3
#define J 4
#define PI 3.1415926
Имена переменным и константам определяются по правилам задания имен идентификаторам (см. 3.2).
Понятие «тип» – одно из фундаментальных для любого языка программирования. В С++ все типы разбиваются на 4 категории: «пустой» тип (void); скалярный тип; тип “функция”; агрегированный тип (агрегат).
К скалярным типам относят арифметические типы, перечисления, указатели и ссылочный тип. К агрегированным типам относят массивы, структуры, объединения и классы.
Кроме того, типы могут быть разделены на основные (фундаментальные) и производные. К основным типам относят void, char, int, float и double вместе с вариантами short, long (применяются только с int), signed и unsigned (применяются к char и int).
Производные типы – это указатели и ссылки на другие типы, массивы, функции, классы, структуры и объединения.