On a la certitude que expression ne sera pas évaluée si expression rend la valeur faux. Ceci présente un intérêt dans certains cas de parcours de tableau ou de liste de blocs chaînés. Par exemple dans le cas d'un parcours de tableau à la recherche d'un élément ayant une valeur particulière, supposons que l'on utilise comme test de fin de boucle l'expression
i < n && t[i] != 234(on boucle tant que ce test est vrai), où
i < n
est le test permettant de ne pas déborder du tableau,
et t[i] != 234
est le test de l'élément recherché.
S'il n'existe dans le tableau aucun élément égal à 234,
il va arriver un moment où on va
évaluer i < n && t[i] != 234
avec i = n
.
La sémantique de l'opérateur &&
assurant que
l'expression t[i] != 234
ne sera pas évaluée,
on ne court donc pas le risque d'avoir une erreur matérielle
(t[n]
peut référencer une adresse mémoire invalide).