@Ashish Goyal
brother order of evaluation means, which one evaluates first, it doesn't depend upon result.
in C, they defined the order of evaluation for only 4 operators
1) expr1 && expr2 ====> expr1 evaluates first if it true then only expr2 evaluates
2) expr1 || expr2 ====> expr1 evaluates first if it false then only expr2 evaluates
3) expr1 , expr2 ====> expr1 evaluates first then expr2 evaluates and return the value of expr2
4) expr1 ? expr2 : expr3 ====> expr1 evaluates first if ( it true then only expr2 evaluates) else ( then only expr3 evaluates )