The order of evaluation of function arguments is unspecified.
"
So the first statement has an undefined behavior. According to C conventions usually arguments are evaluated from right to left but you should not rely upon that.
In the next statements there is no such problem because statements are executed sequentially.