L'affectation

En C, l'affectation est un opérateur et non pas une instruction.

$\bullet$
Syntaxe :

expression :
$\Rightarrow$ lvalue = expression

Dans le jargon C, une lvalue est une expression qui doit délivrer une variable (par opposition à une constante). Une lvalue peut être par exemple une variable simple, un élément de tableau, mais pas une constante. Cette notion permet d'exprimer dans la grammaire l'impossibilité d'écrire des choses du genre 1 = i qui n'ont pas de sens.

Exemples d'affectation :

i = 3
f = 3.4
i = j + 1

$\bullet$
Sémantique :

L'opérateur d'affectation a deux effets :

  1. il réalise un effet de bord consistant à affecter la valeur de expression à la variable désignée par la lvalue ;

  2. il délivre la valeur ainsi affectée, valeur qui pourra être utilisée dans une expression englobant l'affectation.
Exemple :
i = (j = k) + 1
La valeur de k est affectée à j et cette valeur est le résultat de l'expression (j = k) ; on y ajoute 1 et le résultat est affecté à i.

$\bullet$
Conversions de type :

Lorsque la valeur de l'expression est affectée à la lvalue, la valeur est éventuellement convertie dans le type de la lvalue. On peut par exemple affecter une expression entière à un flottant.

Matthieu Moy 2017-02-08