© Éditions Eyrolles
35
chapitre n° 3
Les opérateurs et les expressions en langage C
Autrement dit, dans ces circonstances, l’existence d’une conversion char --> int n’a guère
d’influence. En revanche, pour les comparaisons d’inégalité, quelques précisions s’imposent.
En effet, par exemple c1 < c2 sera vraie si le code du caractère de c1 a une valeur inférieure
au code du caractère de c2. Le résultat d’une telle comparaison peut donc varier suivant le
codage employé. Cependant, il faut savoir que, quel que soit ce codage :
• l’ordre alphabétique est respecté pour les minuscules d’une part, pour les majuscules d’autre
part ; on a toujours 'a' < 'c', 'C' < 'S'...
• les chiffres sont classés par ordre naturel ; on a toujours '2' < '5'...
En revanche, aucune hypothèse ne peut être faite sur les places relatives des chiffres, des
majuscules et des minuscules, pas plus que sur la place relative des caractères accentués
(lorsqu’ils existent) par rapport aux autres caractères !
5 Les opérateurs logiques
C dispose de trois opérateurs logiques classiques : et (noté &&), ou (noté ||) et non (noté !).
Par exemple :
●
(a prend la valeur 1 (vrai) si les deux expressions a valeur 1), et prend la valeur 0 (faux) dans le cas contraire.
●
(a prend la valeur 1 (vrai) si l’une au moins des deux conditions a valeur 1), et prend la valeur 0 (faux) dans le cas contraire.
●
! (a prend la valeur 1 (vrai) si la condition a (faux) dans le cas contraire. Cette expression est équivalente à : a>=b.
Il est important de constater que, ne disposant pas de type logique, C se contente de représenter vrai par 1 et faux par 0. C’est pourquoi ces opérateurs produisent un résultat numérique (de
type int).
De plus, on pourrait s’attendre à ce que les opérandes de ces opérateurs ne puissent être que
des expressions prenant soit la valeur 0, soit la valeur 1. En fait, ces opérateurs acceptent
n’importe quel opérande numérique, y compris les types flottants, avec les règles de conversion implicite déjà rencontrées. Leur signification reste celle évoquée ci-dessus, à condition de
considérer que :
●
0 correspond à faux,
●
toute valeur non nulle (et donc pas seulement la valeur 1) correspond à vrai.
Delannoy Livre.book Page 35 Mercredi, 6. mai 2009 4:26 16
Précédent

- 48/281

Suivant