while((c = getchar()) != ' ' && c != '
')
The first subexpression gives a value to c ,which then is used in the second subexpression.
while(x++ < 10 && x + y < 20)
The fact that the && operator is a sequence piont guarantees that x is incremented before the expression on the right is evaluated.
if (number != 0 && 12/number == 2)
printf("The number is 5 or 6.
");
if the first subexpression is false, the relational expression is not evaluate any further.