Cálculo do valor de expressão booleana

Toda expressão booleana (= expressão lógica) em C tem valor 0 ou 1. Por exemplo, o valor da expressão

   tt == 3

é 1 se tt vale 3 e é 0 se tt não vale 3.  O valor da expressão

   rand () <= RAND_MAX / 2

é 1 se a função rand devolver um número menor ou igual a RAND_MAX/2 e é 0 se a função rand devolver um número maior que RAND_MAX/2.

A ordem dos fatores em uma expressão booleana.  O valor de toda expressão booleana é calculado da esquerda para a direita. Se o valor da expressão fica definido antes que a expressão toda tenha sido examinada, o cálculo é interrompido. Essa regra  (conhecida como minimal evaluation ou short-circuit evaluation)  evita o cálculo de subexpressões de valor indefinido.

No exemplo abaixo, embora as duas expressões pareçam equivalentes, a primeira está correta enquanto a segunda pode estar errada se o valor de v[j] estiver indefinido quando jn.

   if (j < n && v[j] < x) ...

   if (v[j] < x && j < n) ...