4.3. L'opérateur d'affectation = (« reçoit »)

L’affectation permet de « ranger » une valeur dans un emplacement mémoire (en général une variable) appelée Leftvalue. Mais l’affectation n’est pas seulement un traitement à effectuer : c’est aussi une expression qui prend comme valeur la valeur affectée. Cela permet d’utiliser l’affectation comme opérande d’une autre expression. En voici deux exemples :
min = max = 0 ; Pour comprendre ce qui se passe, commençons par deux cas simples. L’instruction nombre=4 est une expression qui :
– place la valeur 4 dans la variable nombre : c'est l'affectation de nombre ; De même, l'écriture max=5*2+3 est une expression qui :
– évalue l'expression à droite (13) et donne à la variable max la valeur 13 ; Remarquons que pour une fois, l'associativité se fait de la droite vers la gauche. Ainsi lorsqu'on écrit a=b=c=0, l'expression la plus à droite est évaluée (elle vaut 0), puis sa valeur est affectée à la variable c ; en même temps, l'expression (c=0) prend la valeur 0, qui est ensuite affectée à la variable b ; l'expression (b=c=0) prend alors la valeur 0, etc ...
On peut ainsi comprendre l’exemple if((val=getchar())==‘q’ ) ... L’expression val=getchar() prend comme valeur la valeur du caractère saisi au clavier par la fonction getchar (valeur aussi rangée dans val) et peut donc être comparée au caractère ‘q’. |