Maison > développement back-end > C++ > le corps du texte

Pourquoi une variable locale non initialisée en C imprime-t-elle 0 ?

Susan Sarandon
Libérer: 2024-11-11 09:08:03
original
1005 Les gens l'ont consulté

Why Does an Uninitialized Local Variable in C   Print 0?

Valeurs par défaut : une histoire de deux variables

En C, les variables non initialisées posent une énigme. La sagesse conventionnelle veut que ces variables contiennent des valeurs inutiles. Cependant, dans un scénario déroutant, le code suivant génère 0 :

int main()
{
    int a;
    cout << a;
    return 0;
}
Copier après la connexion

Pourquoi ce code se comporte-t-il de manière inattendue ?

L'explication réside dans le comportement distinct des variables locales et non locales. Pour les variables locales comme "a" dans le code donné, C leur attribue des valeurs indéterminées par défaut. L'utilisation de ces valeurs sans initialisation déclenche un comportement indéfini, dont les conséquences peuvent aller de l'inoffensive à la catastrophique.

Alternativement, les variables non locales, y compris les variables locales de thread, héritent d'une initialisation nulle de leurs homologues globales. Cependant, dans l'exemple fourni, "a" est une variable locale, non soumise à cette initialisation.

Pour éviter les pièges, les programmeurs sont fortement encouragés à initialiser explicitement toutes les variables. Les variables globales, bien que parfois justifiées dans certaines applications de niche, doivent être abordées avec prudence en raison de leur potentiel de comportement indéfini.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal