Initialisation des membres de la structure C
Les structures C sont des types définis par l'utilisateur qui regroupent des données de différents types. Une question courante se pose concernant l'initialisation par défaut des membres de la structure. Est-ce qu'ils sont automatiquement mis à zéro par défaut ou nécessitent une initialisation explicite ?
Initialisation par défaut
En C , les membres d'une structure ne sont pas initialisés à zéro par défaut. Cela signifie que les membres de structure non initialisés peuvent contenir des valeurs inutiles. Pour éviter cela, vous devez initialiser explicitement les membres aux valeurs souhaitées.
Options d'initialisation
Il existe plusieurs façons d'initialiser les membres d'une structure :
struct Snapshot { double x; int y; }; Snapshot s = {0,0}; // Initializes x=0 and y=0
struct Snapshot { double x; int y; }; Snapshot s = {}; // Initializes x=0 and y=0
struct Snapshot { int x; double y; Snapshot():x(0),y(0) { } }; Snapshot s; // Initializes x=0 and y=0
Initialisation récursive :
L'initialisation de la valeur est récursive, ce qui signifie qu'elle initialise également les membres des structures imbriquées. Par exemple :
struct Parent { Snapshot s; }; Parent p = {}; // Initializes p.s.x=0 and p.s.y=0
Conclusion :
Les membres d'une structure C ne sont pas initialisés à zéro par défaut. Vous devez les initialiser explicitement en utilisant l'une des méthodes décrites ci-dessus pour éviter un 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!