Ok, break it.
The question arises:
a = 5, b=(a==18%13); // What is b?
Let's start with the brackets. The% function, called the module operator, gives you the remainder of the division of two numbers. So, 18/13 gives you 1 remainder of 5. So:
18%13 = 5;
now the equivalence operator == can only return true or false, 1 or 0. This is the same as a query if the left operand is equivalent to the correct operand. In this case:
5 == 5; returns true or 1;
Therefore, b = 1;
source share