x = 1; std::cout << ((++x)+(++x)+(++x));
I expect the output to be 11, but it's actually 12. Why?
11
12
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.
1.4m articles
1.4m replys
5 comments
57.0k users