Maison >développement back-end >C++ >Quand et comment les variables sont-elles automatiquement initialisées en C ?

Quand et comment les variables sont-elles automatiquement initialisées en C ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-03 17:31:10903parcourir

When and How Are Variables Automatically Initialized in C  ?

Initialisation des variables en C : quand et où se produit-elle automatiquement ?

Comprendre l'initialisation des variables en C est crucial pour développer un code robuste. Contrairement à l'hypothèse selon laquelle les variables int sont automatiquement initialisées à 0, l'extrait de code suivant démontre que ce n'est pas le cas :

int main () {
    int a[10];
    int i;
    cout << i << endl;
    for(int i = 0; i < 10; i++)
        cout << a[i] << " ";
    return 0;
}

Ce code générera une valeur aléatoire pour la variable i non initialisée. Pour résoudre ce problème, il est essentiel de comprendre les règles régissant l'initialisation en C .

Règles d'initialisation automatique

En C , les variables ne sont automatiquement initialisées que dans des conditions spécifiques :

  • Instances de classe/structure : L'initialisation du constructeur par défaut initialisera tous les types primitifs dans une instance de classe ou de structure.
  • Array Initializer Syntaxe : Utiliser des accolades pour initialiser des tableaux, par exemple, int a[10] = {} ou int a[10] = {1, 2}, mettra automatiquement à zéro tous les éléments non initialisés.
  • Global/Extern Variables :Les variables déclarées en dehors de la portée de la fonction (globale ou externe) sont automatiquement initialisées à 0.
  • Variables statiques :Les variables avec le mot-clé static sont automatiquement initialisées à 0, quel que soit le leur portée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn