Initialisation des membres de la structure C
En C, les membres d'une structure ne sont pas automatiquement initialisés à 0 ou à toute valeur spécifique lorsqu'ils sont déclarés sans liste d'initialisation. Cela signifie que les valeurs des membres de structure non initialisés sont indéterminées. Pour vous assurer que les membres sont initialisés aux valeurs souhaitées, vous devez les initialiser explicitement.
Méthodes d'initialisation
Il existe plusieurs façons d'initialiser les membres d'une structure :
-
Liste d'initialisations : L'utilisation d'une liste d'initialisations dans la déclaration de structure est la méthode la plus simple moyen d’initialiser les membres. Par exemple :
struct Snapshot {
double x = 0;
int y = 0;
};
-
Initialisation par défaut : La syntaxe d'initialisation par défaut ({}) initialise tous les membres à leurs valeurs par défaut. Dans le cas de types primitifs (tels que double et int), il s'agit de 0.
Snapshot s = {};
-
Initialisation de la valeur : Lors de l'initialisation d'une structure avec un initialiseur vide list (c'est-à-dire {}), l'initialisation de la valeur se produit. Cela initialise chaque membre à sa valeur par défaut ou appelle le constructeur par défaut si le membre est un type défini par l'utilisateur.
-
Constructeur avec liste d'initialisation : Si la structure a un constructeur, vous pouvez utiliser une liste d'initialisation au sein du constructeur pour initialiser son membres.
struct Snapshot {
int x;
double y;
Snapshot(): x(0), y(0) { }
};
-
Opérateur d'affectation : Vous pouvez également attribuer des valeurs aux membres de la structure à l'aide de l'opérateur d'affectation (=).
Snapshot s;
s.x = 0;
s.y = 0;
Il est important de noter que si votre structure a des constructeurs déclarés par l'utilisateur, vous ne pouvez pas utiliser de listes d'initialisation agrégées (par exemple, {}). Dans de tels cas, une initialisation explicite doit être effectuée dans les constructeurs.
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