How do we explain the result of the expression (++x)+(++x)+(++x)?
c++, operator-precedence, undefined-behavior
Solution
We explain it by expecting undefined behaviour rather than any particular result. As the expression attempts to modify x multiple times without an intervening sequence point its behaviour is undefined.
Problem
``` x = 1; std::cout << ((++x)+(++x)+(++x)); ``` I expect the output to be `11`, but it's actually `12`. Why?