Parentheses () are evaulated first, and if they are nested, the inner most pair is evaluated first.
NOTE: If we have an expression that contain two sets of parentheses that are on the same level, the C++ Standard does not specify the order in which these parenthesized subexporessions are evaluated.
Next come Multiplication, division and Modulus, * / %. If there is more than one operator in the expression, then they are evaluated from left to right.
Then there are the stream insertion and extraction operators << and >>, these are also evaluated from left to right.
The relational operators <, <=, >, >== are next, and they too are evaluated from left to right.
These are followed by the equality operators == and !=, which are evaluated left to right.
Finally we have the assignment operator =, which unlike the foregoing, is evaluated from right to left.