Это означает следующее: C * и C ++ позволяют вам связывать назначения, подобные этому
((x = 4) = 3) = 2;
, в результате чего x
будет иметь значение 2: x
сначала устанавливается на 4, затем на 3, а затем на 2 (кажется, что это не очень полезно, но вариации этого могут создавать отличные сокращенные выражения).Чтобы это работало, под ним должно произойти следующее:
x = 4;
X& x2 = x; // reference to x, so that it can be modified without explicitly writing x
x2 = 3; // since x2 is just an alias, the variable that's actually changed is x
X& x3 = x2; // again, x2 just refers to x, so now x3 also does
x3 = 2; // yet again, modifies x
* в C, конечно, он не работает со ссылками, но результат тот же.