#includeusing namespace std; int main() { int a = 1, b = 2, c = 3; (a = b) = c; cout << "a=" << a << " b=" << b << " c=" << c; }
输出结果如下:
a=3 b=2 c=3
其中 (a = b)=c; 是不正常的链式赋值(合法),正常的链式赋值一般为从左到右。
(a = b) = c; 语句执行过程为:先把 b 的值赋给 a ,然后(a = b)执行完成后返还 a 的地址,即此时(a = b)与 a 等价,接着执行 a = c,把 c 的值赋给 a 。



