Dans la plus part des langages, C y compris, le programmeur peut
donner une valeur d'initialisation. Et, il y a un mécanisme
d'initialisation par défaut et de valeurs par défaut.
Le langage C a le gros inconvénient de traiter cet aspect de
façon compliquée.
Ces variables sont
initialisées par défaut à la valeur 0 pour les entiers, la valeur
0.0 pour les réels, ... (c'est à dire avec tous les bits mémoire à 0)
.
Le cas des variables externes
inter-fichiers. Initialisation explicite nécessaire
Pour les variables externes
inter-fichiers, il faudra une initialisation explicite dans un
des fichiers pour distinguer la définition de la
variable dans un
fichier (celle comprenant l'initialisation) des déclarations de
cette variables dans les
autres fichiers sources (déclarations sans
initialisations).L'information est utile pour la réservation de
la mémoire
Les variables locales
(à une fonction). Pas
d'initialisation par défaut. Elle n'est pas cependant pas
obligatoire
Les variables de
classe d'allocation
automatique ou registre peuvent être initialisées explicitement
avec une valeur qui peut n'être connue qu'à l'exécution. On peut
par exemple initialiser une variable locale à
une fonction à l'aide
d'une expression faisant intervenir les paramètres de la fonction.
Une variable de classe
automatique ou registre non initialisée explicitement a une
valeur indéfinie.