Maison >développement back-end >C++ >Comment les variables sont-elles initialisées en C et quand l'initialisation automatique se produit-elle ?

Comment les variables sont-elles initialisées en C et quand l'initialisation automatique se produit-elle ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-31 09:43:21954parcourir

How Are Variables Initialized in C  , and When Does Automatic Initialization Occur?

Initialisation des variables en C : démêler l'initialisation automatique et contrôlée

Contrairement à la croyance populaire, les variables int en C ne sont pas automatiquement initialisées à 0 . Cette idée fausse conduit à un comportement inattendu et à d'éventuelles erreurs d'exécution, comme observé dans le code. fourni :

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

Comprendre les règles régissant l'initialisation des variables est crucial en C . L'initialisation automatique ne se produit que dans des conditions spécifiques :

  • Instances de classe/structure :
    Les classes et les structures sont construites à l'aide du constructeur par défaut, qui initialise automatiquement les types primitifs au sein de l'objet.
  • Syntaxe de l'initialiseur de tableau :
    Les tableaux peuvent être initialisés en utilisant la syntaxe '{}'. Les valeurs entre accolades remplacent l'initialisation par défaut, tandis que les valeurs non spécifiées sont définies sur zéro.
  • Classes/structures non agrégées :
    Similaire à l'initialisation de tableau, classes/structures non agrégées peut être initialisé en utilisant '{}' pour appeler la valeur par défaut constructeur.
  • Variables globales/externes :
    Les variables globales et externes sont automatiquement initialisées à zéro.
  • Variables statiques :
    Les variables déclarées comme statiques (dans la portée de la fonction ou globalement) sont initialisées avec des zéros.

Il est impératif d'initialiser explicitement toute variable de type simple. S'appuyer sur l'initialisation automatique peut conduire à des résultats imprévisibles et nuire à la robustesse du code.

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