const int D = a[1] - a[0];
Прямо там.В этот момент значение D
определяется из текущего значения a[1]
и a[0]
и сохраняется.Затем он полностью отключается от a[1]
и a[0]
.Изменения этих двух параметров больше не будут влиять на D
.
. В подавляющем большинстве языков программирования именно так и будет работать.Оператор =
называется оператором присваивания.Он берет результат выражения с правой стороны и присваивает его переменной слева.Это работает по значению, а не по ссылке.Таким образом, переменная будет присваивать только значение во время выполнения.Переменная не изменится без второго присваивания.
В C ++ и некоторых других языках есть случаи, когда это не совсем верно, они имеют дело с указателями.И будет выглядеть так:
int b = 5;
int *d = &b;
Выражение справа - это адрес (единственной) переменной, которая присваивается указателю (оператор &
является оператором адреса, *
оператор объявления объявляет, что d
является указателем).Затем указатель содержит адрес этой переменной.Значение, которое оно дает при разыменовании, является значением переменной.Однако указатели содержат только значение одной переменной.Они не могут быть псевдонимом выражения.Но прежде чем углубляться в указатели, вы должны лучше понять язык в целом.Указатели - довольно сложная и сложная тема.