Programmer en langage C
34
© Éditions Eyrolles
En ce qui concerne leurs priorités, il faut savoir que les quatre premiers opérateurs (<, <=, >, >=)
sont de même priorité. Les deux derniers (== et !=) possèdent également la même priorité,
mais celle-ci est inférieure à celle des précédents. Ainsi, l’expression :
a < b == c < d
est interprétée comme :
( a < b) == (c < d)
ce qui, en C, a effectivement une signification, étant donné que les expressions a < b et c < d
sont, finalement, des quantités entières. En fait, cette expression prendra la valeur 1 lorsque les
relations a < b et c < d auront toutes les deux la même valeur, c’est-à-dire soit lorsqu’elles
seront toutes les deux vraies, soit lorsqu’elles seront toutes les deux fausses. Elle prendra la
valeur 0 dans le cas contraire.
D’autre part, ces opérateurs relationnels sont moins prioritaires que les opérateurs arithmétiques.
Cela permet souvent d’éviter certaines parenthèses dans des expressions.
Ainsi :
x + y < a + 2
est équivalent à :
( x + y ) < ( a + 2 )
important : comparaisons de caractères. Compte tenu des règles de conversion, une comparaison peut porter sur deux caractères. Bien entendu, la comparaison d’égalité ne pose pas
de problème particulier ; par exemple (c1 et c2 étant de type char) :
c1 == c2 sera vraie si c1 et c2 ont la même valeur, c’est-à-dire si c1 et c2 contiennent des
caractères de même code, donc si c1 et c2 contiennent le même caractère,
c1 == 'e' sera vraie si le code de c1 est égal au code de 'e', donc si c1 contient le caractère e.
Les opérateurs relationnels
OPÉRATEUR
SIGNIFICATION
<
inférieur à
<=
inférieur ou égal à
>
supérieur à
>=
supérieur ou égal à
==
égal à
!=
différent de
Delannoy Livre.book Page 34 Mercredi, 6. mai 2009 4:26 16
Précédent

- 47/281

Suivant