Константы в 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++, помогая создавать более надежный и понятный код. Они предотвращают случайное изменение значений и могут улучшить производительность за счет оптимизаций на этапе компиляции.

Перейти к следующему уроку →