Retour Suite Index

3.3.2. Les opérateurs particuliers de C

- Les opérateurs d'affectation

Opérateurs d'affectation

En pratique, nous retrouvons souvent des affectations comme:


   i = i + 2

En C, nous utiliserons plutôt la formulation plus compacte:


   i += 2

L'opérateur += est un opérateur d'affectation.

Pour la plupart des expressions de la forme:

expr1 = (expr1) op (expr2)

il existe une formulation équivalente qui utilise un opérateur d'affectation:

expr1 op= expr2

Opérateurs d'affectation

+=

ajouter à
-=
diminuer de
*=
multiplier par
/=
diviser par
%=
modulo

Avantages

La formulation avec un opérateur d'affectation est souvent plus près de la logique humaine:

Un homme dirait <<Ajoute 2 à I>>

plutôt que <<Ajoute 2 à I et écris le résultat dans I>>

Remarque avancée

Les opérateurs d'affectation peuvent aider le compilateur à générer un code plus efficient parce que expr1 n'est évalué qu'une seule fois.

Les opérateurs d'affectation deviennent le plus intéressant si expr1 est une expression complexe. Ceci peut être le cas si nous calculons avec des tableaux. L'expression:


Element[n*i+j] = Element[n*i+j] * x[j]

peut être formulée de manière plus efficiente et plus claire:


Element[n*i+j] *= x[j]

- Opérateurs d'incrémentation et de décrémentation

Les affectations les plus fréquentes sont du type:


I = I + 1      et      I = I - 1

En C, nous disposons de deux opérateurs inhabituels pour ces affectations:

I++ ou ++I

pour l'incrémentation
(augmentation d'une unité)
I-- ou --I
pour la décrémentation
(diminution d'une unité)

Les opérateurs ++ et -- sont employés dans les cas suivants:

incrémenter/décrémenter une variable (p.ex: dans une boucle). Dans ce cas il n'y a pas de différence entre la notation préfixe (++I --I) et la notation postfixe (I++ I--).

incrémenter/décrémenter une variable et en même temps affecter sa valeur à une autre variable. Dans ce cas, nous devons choisir entre la notation préfixe et postfixe: Attention!

X = I++

passe d'abord la valeur de I à X et incrémenteaprès

X = I--
passe d'abord la valeur de I à X et décrémente après

X = ++I
incrémente d'abord et passe la valeur incrémentée à X

X = --I
décrémente d'abord et passe la valeur décrémentée à X

Exemple Supposons que la valeur de N est égal à 5:

Incrém. postfixe:

X = N++;
Résultat: N=6 et X=5

Incrém. préfixe:
X = ++N;
Résultat: N=6 et X=6
Retour Suite Index