© Éditions Eyrolles
37
chapitre n° 3
Les opérateurs et les expressions en langage C
L’opérateur || est moins prioritaire que &&. Tous deux sont de priorité inférieure aux opérateurs arithmétiques ou relationnels. Ainsi, les expressions utilisées comme exemples en début
de ce paragraphe auraient pu, en fait, être écrites sans parenthèses :
a équivaut à
(a a équivaut à
(a Enfin, les deux opérateurs && et || jouissent en C d’une propriété intéressante : leur second
opérande (celui qui figure à droite de l’opérateur) n’est évalué que si la connaissance de sa
valeur est indispensable pour décider si l’expression correspondante est vraie ou fausse. Par
exemple, dans une expression telle que :
a on commence par évaluer a
de toute façon, l’expression complète aura la valeur faux (0).
La connaissance de cette propriété est indispensable pour maîtriser des « constructions » telles
que :
if ( i
En effet, le second opérande de l’opérateur &&, à savoir :
c = getchar() != '\n'
fait appel à la lecture d’un caractère au clavier. Celle-ci n’aura donc lieu que si la première
condition (i
6 L’opérateur d’affectation ordinaire
Nous avons déjà eu l’occasion de remarquer que :
i = 5
était une expression qui :
●
réalisait une action : l’affectation de la valeur 5 à i,
●
possédait une valeur : celle de i après affectation, c’est-à-dire 5.
Cet opérateur d’affectation (=) peut faire intervenir d’autres expressions comme dans :
c = b + 3
La faible priorité de cet opérateur = (elle est inférieure à celle de tous les opérateurs arithmétiques et de comparaison) fait qu’il y a d’abord évaluation de l’expression b + 3. La valeur
ainsi obtenue est ensuite affectée à c.
Delannoy Livre.book Page 37 Mercredi, 6. mai 2009 4:26 16
37
chapitre n° 3
Les opérateurs et les expressions en langage C
L’opérateur || est moins prioritaire que &&. Tous deux sont de priorité inférieure aux opérateurs arithmétiques ou relationnels. Ainsi, les expressions utilisées comme exemples en début
de ce paragraphe auraient pu, en fait, être écrites sans parenthèses :
a équivaut à
(a a équivaut à
(a Enfin, les deux opérateurs && et || jouissent en C d’une propriété intéressante : leur second
opérande (celui qui figure à droite de l’opérateur) n’est évalué que si la connaissance de sa
valeur est indispensable pour décider si l’expression correspondante est vraie ou fausse. Par
exemple, dans une expression telle que :
a on commence par évaluer a
La connaissance de cette propriété est indispensable pour maîtriser des « constructions » telles
que :
if ( i
c = getchar() != '\n'
fait appel à la lecture d’un caractère au clavier. Celle-ci n’aura donc lieu que si la première
condition (i
Nous avons déjà eu l’occasion de remarquer que :
i = 5
était une expression qui :
●
réalisait une action : l’affectation de la valeur 5 à i,
●
possédait une valeur : celle de i après affectation, c’est-à-dire 5.
Cet opérateur d’affectation (=) peut faire intervenir d’autres expressions comme dans :
c = b + 3
La faible priorité de cet opérateur = (elle est inférieure à celle de tous les opérateurs arithmétiques et de comparaison) fait qu’il y a d’abord évaluation de l’expression b + 3. La valeur
ainsi obtenue est ensuite affectée à c.
Delannoy Livre.book Page 37 Mercredi, 6. mai 2009 4:26 16
