Expressions

Une expression est une suite d'opérateurs et d'opérandes. Un opérateur représente une action et les opérandes ses paramètres.

Pour évaluer une expression, il est nécessaire de connaître les priorités entre les opérateurs qui la compose et leur associativité. L'ordre d'éxecution des actions peut être paramétré à l'aide des parenthèses.
Exemple : i + 3 * j et (i + 3) * j

Opérateurs

Type
Opérateur
Postfixé [] . (params) expr++ expr--
Unaire ++expr --expr +expr -expr ~ !
Conversion (type)expr
Multiplicatif * / %
Additif + -
Décalage << >>
Relationnel < > >= <=
Test d'égalité == !=
Et bit à bit &
Ou bit à bit exclusif ^
Ou bit à bit inclusif |
Et logique &&
Ou logique ||
Conditionnel ?:
Affectation = += -= *= /= %= >>= <<= &= ^= |=

Les opérateurs sont classés par ordre de priorité. Les opérateurs binaires sont tous associatifs à gauche, sauf l'affectation.

Les opérateurs à effet de bord, comme ++ ne doivent pas être utilisées lors de l'appel de fonctions car l'ordre d'évaluation des paramètres est indéfini. Voir test_effet_bord.c.
$ test_effet_bord
2 1

Le type des opérandes influe sur la nature de l'opération et son résultat. Certaines conversions sont également faites de façon implicite. Voir test_types2.c.
$ test_types2
0.000000 0.666667 0.666667