Чем в С++ константа отличается от переменной? Как константа объявляется?

В C++ под константами и литералами, как правило, подразумевают одно и то же: это такие значения, предназначенные для восприятия пользователем, которые не могут быть изменены в ходе выполнения программы. Приведенное определение относится большей частью к литералу.

Под константами здесь и далее будем подразумевать именованные ячейки памяти, значения которых фиксируются на начальном этапе выполнения программы и затем в процессе выполнения программы не могут быть изменены. В этом смысле константы – это те же переменные, но только с фиксированным, определенным единожды, значением.

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

Например, инструкцией const int m=5 инициализируется целочисленная переменная m со значением 5. После этого переменную m можно использовать в выражениях, однако изменить значение переменной не удастся.

Отличительной особенностью переменных является то, что мы можем многократно в течение работы программы изменять их значение:

1
2
3
int n {7};
n = 9;
n = 5;

Но кроме переменных в языке программирования C++ можно определять константы. Их значение устанавливается один раз и впоследствии мы его не можем изменить. Константа определяется практически так же, как и переменная за тем исключением, что в начале определения константы идет ключевое слово const. Например:

1
2
3
const int n {22};
// или
// const int n = 22;

И также в процессе программы мы сможем обращаться к значению константы:

1
2
3
4
5
6
7
#include <iostream>

int main()
{
const int age {22};
std::cout << «Age = » << age << «\n»;
}

Но если же мы захотим после определения константы присвоить ей некоторое значение, то компилятор не сможет скомпилировать программу и выведет ошибку:

1
2
const int age {22};
age = 78;

То есть такой код не будет работать. И так как нельзя изменить значения константы, то ее всегда необходимо инициализировать, если мы хотим, чтобы она имела некоторое значение.

Если константа не будет инициализирована, то компилятор также выведет ошибку и не сможет скомпилировать программу, как в следующем случае:

1 const int age;

В качестве значения константам можно передавать как обычные литералы, так и динамически вычисляемые значения, например, значения переменных или других констант:

1
2
3
4
int a {10};
const int b {7};
const int d {b};
const int x {a};

Обычно в качестве констант определяются такие значения, которые должны оставаться постоянными в течение работы всей программы и не могут быть изменены. Например, если программа выполняет математические операции с использованием числа PI, то было бы оптимально определить данное значение как константу, так как оно все равно в принципе неизменно:

1 const float pi {3.14};

***

*https://metanit.com/cpp/tutorial/2.5.php

*https://codernet.ru/books/c_plus/samouchitel_c_s_primerami_i_zadachami_aleksandr_vasilev/

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *