Les opérateurs et les structures de contrôle

Les opérations simples.

Les opérateurs

Comme tous les langages, le C contient des opérateurs qui permettent de faire des opérations arithmétiques sur les variables. Vous avez dans les exemples précédents déjà effectué quelques opérations.

Les cinq opérateurs du C sont :
l'addition +
la soustraction -
la multiplication *
la division /
le modulo %

Il n'existe pas d'opérateur pour l'élévation à la puissance. La division suivant les types des opérandes est soit entière soit flottante. Ainsi :
7/2 retourne 3,
7.0/2 ou 7/2.0 ou 7.0/2.0 retournent un résultat flottant de 2.5.

Il existe avec ces opérateurs des raccourcis qui permettent d'écrire un code plus concis, en principe plus optimisé et souvent moins lisible. Ainsi si une variable apparaît des deux côtés du signe = , on peut écrire <operateur>=.
i += 3 est équivalent à i = i + 3.
var -= 5 est équivalent à var = var - 5
CeciEstUneLongueVariable *= 2 est équivalent à CeciEstUneLongueVariable = CeciEstUneLongueVariable * 2.
toto /= 1 est équivalent à toto = toto / 1.

Le raccourcissement du code peut encore se poursuivre dans le cas des opérateurs + et - quand on ajoute 1.
i++ ou ++i est équivalent à i += 1 ou i = i + 1
j-- ou --j est équivalent à j -= 1 ou j = j - 1



Les conversions de type

Il existe aussi des opérateurs pour changer le type d'une variable. Le C propose en interne la possibilité de passer d'un type à un autre.

Dans cet exemple, le C s'arrange pour convertir le nombre flottant en nombre entier. Il faut être conscient qu'il ne s'agit pas d'une simple affectation, la représentation en mémoire d'un nombre est complètement différente pour un entier et un flottant. Cette opération appelé cast sera fréquemment utilisée pour les pointeurs. Bien que le C accepte n'importe quel type de variable en paramètre d'une fonction, un reste de souvenir des bonnes règles lui fait émettre des messages de warning. Pour éviter ces messages un cast permet de modifier le type de la variable.

Une autre méthode pour changer le type d'une valeur fait appel à des routines spécialisées. La plus célèbre atoi (ascii to integer) permet de convertir une chaîne de caractères en un entier. La conversion inverse est plus compliquée. La méthode la plus simple (du moins pour le programmeur) consiste à utiliser la fonction sprintf qui a le même comportement que le printf mais au lieu d'afficher les valeur à l'écran les met dans une chaîne de caractères passée en premier paramètre (voir man).


Les opérateurs de comparaison

Des comparaisons entre les variables peuvent être faites grâce aux opérateurs :

< strictement inférieur
> strictement supérieur
<= inférieur ou égal
> supérieur ou égal
!= différent
== égal.
ATTENTION, UNE SOURCE IMPORTANTE D'ERREURS VIENT DE LA CONFUSION ENTRE CET OPERATEUR ET L'OPERATEUR D'AFFECTATION =.



De petits exercices


Suite : Tests et Boucles


Menu Principal