Cours 2.5. Initialisation des variables

Syntaxe

Il existe plusieurs façons de déclarer et initialiser des variables :

Déclaration simple

float x;

Déclaration et initialisation

float x=8.5;

Déclaration puis initialisation

float x;
x=8.5;

Déclaration de plusieurs variables

float x, y, z;

Déclaration et initialisation de plusieurs variables. C'est la solution la plus populaire. On essaye généralement de regrouper ensemble des variables similaires ou liées.

float x=8.5, y=-3.2, z;

Notez que la dernière variable z n'est pas initialisée.

Variable non initialisée

Considérons le programme suivant. Qu'affiche-t-il ?

float x;
printf ("%f", x);

On pourrait naturellement penser que le programme affichera zéro et ce sera d'ailleurs souvent le cas, mais malheureusement ... pas toujours ! Cela fait d'ailleurs des variables non initialisées un problème particulièrement sournois, puisqu'il fonctionnera la majeure partie du temps.

Une variable non initialisée prendra la valeur précédemment mémorisée au même emplacement mémoire que la variable. Ce sera souvent zéro, mais pas toujours. Les variables utilisées sans être initialisées sont un problème source de nombreux bugs difficiles à diagnostiquer. Ce phénomène a d'ailleurs une page Wikipedia dédiée.

Quiz

Comment déclarer plusieurs variables sur la même ligne ?

Vérifier Bravo ! N'oubliez pas que la séparation entre les instructions est identifiée par le point-virgule. Essaie encore ...

Comment initialiser une variable sur la même ligne que sa déclaration ?

Vérifier Bravo ! La première solution est plus élégante, il faut la privilégier. Essaie encore ...

Comment déclarer un entier et un flottant dans la même instruction ?

Vérifier Bravo ! Il n'est pas possible de déclarer simultanément deux variables de types différents. Essaie encore ...

Quelle valeur aura une variable non initialisée ?

Vérifier Bravo ! La variable prendra la valeur antérieure de la mémoire où elle est stockée. Essaie encore ...

Qu'affiche le programme suivant ?

int zero;
printf ("%d", zero);
Vérifier Bravo ! On ne peut jamais prédire la valeur d'une variable non initialisée. Mieux vaut éviter ce type de programme. Essaie encore ...

Voir aussi


Dernière mise à jour : 22/10/2022