0Pricing
C++ Academy · Урок

Константные переменные и параметры

Защищайте данные от изменений

«Константные переменные и параметры» — бесплатный урок C++ Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения C++ Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс C++ Academy содержит 4 уроков всего.

Объявление константных переменных

Переменную const нельзя изменить после инициализации. Компилятор обеспечивает это ограничение и обнаруживает случайные записи.

#include <iostream>

int main() {
    const int maxUsers = 100;
    // maxUsers = 200;   // ERROR
    std::cout << maxUsers << "\n";
}

Параметры функций с константностью

Пометка параметра, передаваемого по значению, как const не позволяет телу функции изменить его локальную копию — это помогает документировать намерение и повышает безопасность.

#include <iostream>

int doubled(const int n) {
    // n = 0;   // ERROR
    return n * 2;
}

int main() { std::cout << doubled(21) << "\n"; }

Параметры-ссылки с константностью

Передача по const& позволяет избежать копирования крупных объектов и одновременно гарантирует, что они не будут изменены, — это стандартный способ передавать строки и контейнеры.

#include <iostream>
#include <string>

void printLen(const std::string& s) {  // no copy, no change
    std::cout << s.size() << "\n";
}

int main() { printLen("hello"); }

Указатель на константное значение

const T* означает, что нельзя изменить значение, на которое указывает этот указатель, хотя сам указатель можно переназначить.

#include <iostream>

int main() {
    int a = 1, b = 2;
    const int* p = &a;
    // *p = 5;   // ERROR: value is const
    p = &b;      // OK: pointer can move
    std::cout << *p << "\n";
}

Константный указатель

T* const — это константный указатель: его нельзя переназначить, но значение, на которое он указывает, можно изменить.

#include <iostream>

int main() {
    int a = 1;
    int* const p = &a;
    *p = 9;      // OK: value changeable
    // p = nullptr;  // ERROR: pointer is const
    std::cout << *p << "\n";
}

Чтение объявлений справа налево

Читайте объявления с константностью справа налево: const int* const — это «константный указатель на константное значение типа int», поэтому изменить нельзя ни значение, ни указатель.

Зачем нужна корректность константности

Использование const везде, где это уместно, документирует намерение, предотвращает ошибки и позволяет компилятору оптимизировать код. Такая дисциплина называется корректностью константности.

Константность позволяет вызывать функцию из константного кода

Функция, принимающая const&, может принимать как константные, так и неконстантные аргументы, а также временные объекты. Неконстантная ссылка не может быть привязана к временному объекту.

Константные локальные переменные упрощают рассуждение о коде

Объявление локальных переменных как const, если их не следует изменять, делает код понятнее и предотвращает случайное присваивание нового значения.

#include <iostream>

int main() {
    const double rate = 0.2;
    const double total = 100 * (1 + rate);
    std::cout << total << "\n";
}

Верхнеуровневая константность значений

Для параметров, передаваемых по значению, верхнеуровневая const не влияет на вызывающий код — она лишь ограничивает тело функции и часто опускается в объявлениях.

Добавляйте константность с самого начала

Сразу писать код с корректной константностью гораздо проще, чем внедрять её позже. Возьмите за правило применять const к параметрам, ссылкам и локальным переменным.

Быстрая проверка

Проверьте, насколько хорошо Вы поняли принцип константности.

Итоги

Вы научились использовать const для переменных, параметров, ссылок и указателей, а также различать указатель на константное значение и константный указатель. Корректность константности документирует намерение, предотвращает ошибки, позволяет привязывать ссылки к временным объектам и способствует оптимизации.

Часто задаваемые вопросы

Урок «Константные переменные и параметры» бесплатный?

Да — полный текст урока «Константные переменные и параметры» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс C++ Academy, подпишись на CoddyKit PRO. Курс C++ Academy содержит 4 уроков всего.

Чему я научусь в уроке «Константные переменные и параметры»?

Защищайте данные от изменений Ты практикуешь C++ Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать C++ Academy?

Предыдущий опыт не требуется. C++ Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Константные переменные и параметры»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке C++ Academy?

Да. Каждый урок C++ Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Константные переменные и параметры
  2. Константные функции-члены
  3. constexpr и время компиляции
  4. consteval и constinit
← Назад к C++ Academy