Уловка джедая:
Что помогло мне лучше понять ссылки, так это думать о них как об именах переменных. int& x = a
просто означает, что когда вы говорите x
, вы на самом деле имеете в виду a
.
Думайте о ссылках как о псевдониме.
Это довольно ясно:
int a = 10, b = 30;
Думайте об этом не как x = 10
, а как "x - это другое название для".
int& x = a;
Итак, x
будет по-прежнему ссылаться на a
, поэтому вы даете значение b
(30).
x = b;
В этот момент x
все еще привязан к a
, вы только что изменили его значение.
Итак, x == 30
и a == 30
на данный момент, но если вы сделаете:
a = 10;
x
также будет равно 10
.