Maison > développement back-end > C++ > Les membres de la structure C sont-ils initialisés à zéro par défaut ?

Les membres de la structure C sont-ils initialisés à zéro par défaut ?

Susan Sarandon
Libérer: 2024-12-15 06:06:12
original
680 Les gens l'ont consulté

Are C   Struct Members Initialized to Zero by Default?

Les membres d'une structure C sont-ils initialisés à 0 par défaut ?

Il n'est pas garanti que les valeurs des membres non initialisés d'une structure C soient 0. Pour les initialiser explicitement membres, utilisez une liste d'initialisation :

struct Snapshot
{
    double x; 
    int y;
};

Snapshot s = {0, 0}; // Explicitly initialize members to 0
Copier après la connexion

Vous pouvez également initialiser la structure en utilisant le {} syntaxe :

Snapshot s = {}; // Value initializes all members to 0
Copier après la connexion

Notez que l'utilisation de {} pour l'initialisation de la valeur fonctionne de manière récursive, même pour les structures imbriquées :

struct Parent { Snapshot s; };
Parent p = {}; // Value initializes both p and p.s to 0
Copier après la connexion

Si la structure a des constructeurs, vous devez explicitement initialiser les membres de ceux-ci constructeurs :

struct Snapshot {
    int x;
    double y;
    Snapshot(): x(0), y(0) { } // Initialize members in the constructor
};
Copier après la connexion

Vous pouvez également utiliser la syntaxe d'initialisation des valeurs par défaut x(), y() pour ignorer le type et attribuez une valeur initiale appropriée (0 pour int, 0,0 pour double, etc.) :

Snapshot(): x(), y() { } // Value initializes both x and y to 0
Copier après la connexion

Cela peut être particulièrement utile pour les modèles.

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