Order of evaluation of expression
I've just read that order of evaluation and precedence of operators are different but related concepts in C++. But I'm still unclear how those are different but related?. int x = c + a * b; // 31 int y = (c + a) * b; // 36 What does the above statements has to with order of evaluation. e.g. when I say (c + a) am I changing the order of evaluation of expression by changing its precedence? The important part about order of evaluation is whether any of the components have side effects. Suppose you have this: int i = c() + a() * b(); Where a and b have side effects: int global = 1; int a() {