Константы в C++ - это значения, которые не могут быть изменены после их определения. Они используются для создания неизменяемых данных и улучшения читаемости кода.
Основные способы объявления констант
1. Использование ключевого слова const
const int MAX_STUDENTS = 30;
const double PI = 3.14159;
2. Использование #define (макроопределение)
#define MAX_STUDENTS 30
#define PI 3.14159
Примечание: Предпочтительнее использовать const вместо #define, так как const обеспечивает типобезопасность и лучшую поддержку отладки.
Константные переменные
Константные переменные должны быть инициализированы при объявлении:
const int DAYS_IN_WEEK = 7;
int const MONTHS_IN_YEAR = 12; // альтернативный синтаксис
Константные указатели и ссылки
Константный указатель на неконстантные данные
int value = 5;
int* const ptr = &value // ptr всегда указывает на value
*ptr = 10; // Можно изменить значение, на которое указывает ptr
// ptr = &other_value; // Ошибка: нельзя изменить адрес, на который указывает ptr
Указатель на константные данные
const int value = 5;
const int* ptr = &value
// *ptr = 10; // Ошибка: нельзя изменить значение через ptr
ptr = &other_value; // Можно изменить адрес, на который указывает ptr
Константная ссылка
int value = 5;
const int& ref = value;
// ref = 10; // Ошибка: нельзя изменить значение через константную ссылку
constexpr (C++11)
constexpr используется для вычисления значений во время компиляции:
constexpr int ARRAY_SIZE = 10;
constexpr int SQUARE(int x) { return x * x; }
int array[ARRAY_SIZE]; // OK
int value = SQUARE(5); // Вычисляется во время компиляции
Заключение
Константы играют важную роль в C++, помогая создавать более надежный и понятный код. Они предотвращают случайное изменение значений и могут улучшить производительность за счет оптимизаций на этапе компиляции.