Maison >développement back-end >C++ >Comment `Array[100] = {0}` initialise-t-il les éléments du tableau à zéro en C et C ?

Comment `Array[100] = {0}` initialise-t-il les éléments du tableau à zéro en C et C ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-09 04:40:19421parcourir

How Does `Array[100] = {0}` Initialize Array Elements to Zero in C and C  ?

Comment Array[100] = {0} définit les éléments sur zéro

En C et C, initialiser un tableau avec un seul la valeur entre accolades initialise les éléments non initialisés à une valeur par défaut. Dans le cas d'un tableau de caractères (par exemple, char array[100] = {0}), le compilateur définit les éléments sur le caractère de fin nul (' ').

Initialisation interne du compilateur

En C, le compilateur initialise les types primitifs (y compris les pointeurs) à zéro. Pour les types de données agrégées (comme les tableaux), il applique cette règle de manière récursive à tous les éléments.

En C , le compilateur initialise par agrégation les éléments non initialisés des tableaux. L'initialisation globale définit les éléments sur les valeurs par défaut de leurs types respectifs. Pour les types primitifs, c'est zéro.

Liste d'initialisation vide

C prend également en charge l'initialisation globale avec une liste d'initialisation vide (char array[100] = {}). Dans ce cas, le compilateur initialise tous les éléments du tableau à leurs valeurs par défaut.

Code généré par le compilateur

Le code assembleur spécifique généré par le compilateur variera en fonction sur les paramètres de la plateforme et du compilateur. Cependant, généralement, le compilateur initialisera chaque élément du tableau individuellement à l'aide d'une instruction dédiée.

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