C relationnel et opérateurs d'égalité
Les opérateurs binaires relationnels et d'égalité comparent leur premier opérande à leur second opérande pour tester la validité de la hauteur spécifiée.Le résultat d'une expression relationnelle est 1 si la relation testée a la valeur true et 0 si elle a la valeur false.le type du résultat est int.
Syntaxe
expression relationnelle:
décalage-expressiondécalage-expression d' < d'expression relationnelle
décalage-expression d' > d'expression relationnelle
décalage-expression d' <= d'expression relationnelle
décalage-expression d'>= d'expression relationnelle
égalité-expression:
expression relationnelleexpression relationnelle de == d'égalité-expression
expression relationnelle de**!=** d'égalité-expression
les opérateurs relationnels et d'égalité testent les relations suivantes :
Opérateur |
relation testée |
---|---|
< |
Premier opérande moins que le deuxième |
> |
Premier opérande supérieur au deuxième |
<= |
Premier opérande inférieur ou égal au deuxième |
>= |
Premier opérande supérieur ou égal à deuxième |
== |
Premier opérande égal au deuxième |
!= |
Premier opérande non égal au deuxième |
les quatre premiers opérateurs dans la liste ci-dessus ont une priorité plus élevée que les opérateurs d'égalité (== et !=).Consultez les informations de substitution dans le tableau Niveau de précédence et d'associativité des opérateurs C.
Les opérandes peuvent avoir une intégrale, le flottante, ou le type pointeur.les types des opérandes peuvent être différents.Les opérateurs relationnels exécutent les conversions arithmétiques classiques pour des opérandes intégraux et flottant de type.en outre, vous pouvez utiliser les combinaisons suivantes des types d'opérande avec les opérateurs relationnels et d'égalité :
Les deux opérandes de tout opérateur relationnel ou d'égalité peut être des pointeurs vers le même type.Pour les opérateurs d'égalité (==) et d'inégalité (!=), le résultat de la comparaison indique si les deux pointeurs traitent le même emplacement de mémoire.Pour les autres opérateurs relationnels (<, >, <=, et >=), le résultat de la comparaison indique la position relative des deux adresses mémoire des objets entrées figurant.Les opérateurs relationnels comparer uniquement des offsets.
La comparaison de pointeur est définie uniquement pour les parties du même objet.Si les pointeurs font référence aux membres d'un tableau, la comparaison est équivalente à la comparaison des indices correspondants.L'adresse du premier élément du tableau est « inférieur à » l'adresse du dernier élément.Dans le cas de structures, les pointeurs vers des membres de structures déclarés ultérieurement sont « supérieurs à » les pointeurs vers des membres déclarés précédemment dans la structure.Les pointeurs vers des membres de la même union sont égaux.
une valeur de pointeur peut être comparée à la valeur de constante 0 pour l'égalité (==) ou l'inégalité (!=).Un pointeur avec une valeur de 0 est appelé un pointeur null ; autrement dit, il n'indique pas un emplacement de mémoire non valide.
Les opérateurs d'égalité suivent les mêmes règles que les opérateurs relationnels, mais permettent de fonctionnalités supplémentaires : un pointeur peut être comparé à une expression constante intégrale avec la valeur 0, ou un pointeur vers void.Si deux pointeurs sont les deux pointeurs null, ils sont considérés comme égaux.Les opérateurs d'égalité compare le segment et l'offset.
Exemples
Les exemples suivants montrent les opérateurs relationnels et d'égalité.
int x = 0, y = 0;
if ( x < y )
Étant donné qu' x et y sont identiques, l'expression dans cède de cet exemple la valeur 0.
char array[10];
char *p;
for ( p = array; p < &array[10]; p++ )
*p = '\0';
le fragment dans cet exemple définit chaque élément d' array à une constante de caractère Null.
enum color { red, white, green } col;
.
.
.
if ( col == red )
.
.
.
Ces instructions déclarent une variable d'énumération nommée col avec l'indicateur color.À tout moment, la variable peut contenir une valeur entière à 0, une de 1, ou 2, qui représente un des éléments de l'énumération colordéfinie : le rouge, le blanc, ou la couleur verte, respectivement.Si col contient 0 lorsque l'instruction d' if est exécutée, toutes les instructions selon if sont exécutées.