Maison >développement back-end >C++ >Pourquoi certains éléments du tableau sont-ils initialisés à zéro lorsque j'attribue une valeur par défaut en C ?

Pourquoi certains éléments du tableau sont-ils initialisés à zéro lorsque j'attribue une valeur par défaut en C ?

DDD
DDDoriginal
2024-12-27 20:30:11665parcourir

Why are Some Array Elements Initialized to Zero When I Assign a Default Value in C  ?

Initialisation des éléments du tableau avec une valeur par défaut en C

Question :

Pourquoi l'initialisation un tableau avec une valeur non nulle utilisant la syntaxe ci-dessous entraîne une incohérence valeurs ?

int array[100] = {-1};

Réponse :

En utilisant la syntaxe mentionnée dans la question,

int array[100] = {-1};

initialise le premier élément à la valeur spécifiée (-1) et définit les éléments restants sur 0 par défaut. Pour initialiser tous les éléments à -1, on peut utiliser la fonction std::fill_n de :

std::fill_n(array, 100, -1);

Pour le code C, une boucle manuelle est nécessaire pour initialiser explicitement tous les éléments. Les extensions du compilateur ou les comportements définis par l'implémentation peuvent fournir des raccourcis, mais il n'est pas recommandé de s'en servir pour la portabilité.

Concernant la vitesse d'initialisation :

La méthode d'initialisation par défaut n'est généralement pas plus rapide que d’initialiser explicitement chaque élément à l’aide d’une boucle. Cependant, la différence de performances est généralement négligeable, sauf s'il s'agit de grands tableaux.

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