有人能解答这个奇葩问题吗?为啥C等于209,这个是怎么运算的,求大神们解答下,我是小白

int a4 = 10;

int b4 = 20;

int c = ++a4 + b4-- * 10 + --b4 - a4++;

cout << "a4=" << a4 << endl;//12
cout << "b4=" << b4 << endl;//18
cout << "c=" << c << endl;//209

这是C/C++语言的未定义行为,也就是说,不同的编译器,可能导致运算结果的不同,不能保证结果的唯一。
原因在于++a4 --b4 这些表达式在相同优先级的情况下,求值顺序是不确定的,而其本身又是副作用表达式,所以结果就不可知了。

你有兴趣的话,可以多测试几个编译器,这是我的计算机的运行结果
a4=12
b4=18
c=218

进一步阅读
https://www.cnblogs.com/Lee-geeker/archive/2013/08/02/3232693.html