« Programmation C/Opérateurs » : différence entre les versions
Contenu supprimé Contenu ajouté
→Les opérateurs du C : Correction d'une faute d'orthographe. |
→Les opérateurs du C : ortho |
||
Ligne 9 :
* Les '''instructions''' : manipulent les expressions pour leur donner une signification particulière (test, boucle, saut, ...).
Les déclarations de variables ont en partie été décrites dans les
Les expressions en C sont en fait très génériques, elles peuvent inclure des opérations arithmétiques classiques (addition, soustraction, division, modulo, ...), des expressions booléennes (OU logique, ET logique, OU exclusif, ...), des comparaisons (égalité, inégalité, différence, ...) et même des affectations (copie, auto-incrément, ...). Toutes ces opérations peuvent s'effectuer en une seule expression, il suffit d'appliquer les bons opérateurs sur les bons opérandes.
Ligne 15 :
Les opérateurs binaires et ternaires utilisent une notation infixe (l'opérateur se trouve entre les 2 ou 3 opérandes). Les opérateurs unaires s'écrivent de manière préfixé (avant l'opérande), à l'exception des opérateurs <code>++</code> et <code>--</code> qui peuvent s'écrire de manière préfixée ou postfixée (avec une différence subtile, décrite ci-après).
La '''priorité''' (quel opérateur est appliqué avant, en l'absence de
{| cellpadding="5" cellspacing="0" style="border:thin black solid"
Ligne 143 :
C'est un concept quelque peu sibyllin du C. Incrémenter ou décrémenter de un est une opération extrêmement courante. Écrire à chaque fois '<code>variable = variable + 1</code>' peut-être très pénible à longue. Le langage C a donc introduit des opérateurs raccourcis pour décrémenter ou incrémenter n'importe quel type atomique (gérable directement par le processeur : c'est à dire pas un tableau, ni une structure ou une union). Il s'agit des opérateurs '<code>++</code>' et '<code>--</code>', qui peuvent être utilisés de manière préfixée ou postfixée (avant ou après la variable).
Utilisé de manière préfixée, l'opérateur modifie d'abord la variable, puis utilise cette nouvelle valeur dans l'expression, tandis qu'
<source lang="c">
Ligne 164 :
=== Promotion entière ===
La promotion entière, à ne pas confondre avec la conversion automatique de type, fait que tous les types plus petits ou égaux à <code>int</code> (<code>char</code>, <code>short</code>, champs de bits, type énuméré) sont convertis (promus) en <code>int</code> ou <code>
<source lang="c">
short sum(short a, short b) {
Ligne 177 :
La conversion est un mécanisme qui permet de convertir implicitement les nombres dans le format le plus grand utilisé dans l'expression.
L'exemple classique est
Plus subtile, l'expression '<code>2 * a / 3.</code>', en supposant toujours que ''a'' soit un entier, effectuera une multiplication entière entre 2 et a, puis promouvra le résultat en réel (<code>double</code>) puis effectuera la division réelle avec trois, pour obtenir un résultat réel lui-aussi.
Ligne 264 :
</source>
Une autre technique classique, lorsqu'une comparaison fait intervenir une constante, est de mettre la constante à gauche. De cette manière, si la comparaison se transforme par mégarde en affectation, cela
<source lang="c">
|