I have 4 pair of logical expressions, each pair should be logically equivalent. Can anyone explain why the third pair does not give the same resoult please?
When parsing an expression, an operator which is listed on some row of the
table above with a precedence will be bound tighter (as if by parentheses) to its arguments than
any operator that is listed on a row further below it with a lower
precedence. For example, the expressions std::cout << a & b and *p++ are parsed as
(std::cout << a) & b and *(p++), and not as std::cout << (a & b) or (*p)++.