Maison >développement back-end >C++ >Comment initialiser efficacement tous les éléments du tableau à une valeur par défaut en C ?

Comment initialiser efficacement tous les éléments du tableau à une valeur par défaut en C ?

DDD
DDDoriginal
2024-12-24 16:03:14274parcourir

How to Efficiently Initialize All Array Elements to a Default Value in C  ?

Initialisation de tous les éléments d'un tableau à une valeur par défaut

En C , vous pouvez initialiser tous les éléments d'un tableau à une valeur par défaut en utilisant le syntaxe suivante :

int array[100] = {0};

Cela définira tous les éléments du tableau sur 0. Cependant, vous pouvez rencontrer un comportement inattendu lorsque vous tentez de initialiser tous les éléments à une valeur non nulle, telle que -1.

Définition de tous les éléments à une valeur non nulle

La syntaxe :

int array[100] = {-1};

demande au compilateur de définir uniquement le premier élément sur -1, tandis que les éléments restants seront par défaut sur 0. Pour initialiser tous les éléments à -1, vous pouvez utiliser des méthodes telles que :

  • std::fill_n (Bibliothèque standard C) :
std::fill_n(array, 100, -1);
  • Initialisation basée sur une boucle (Portable C) :
for (int i = 0; i < 100; i++) {
  array[i] = -1;
}

Considération relative aux performances

La question de savoir si l'initialisation par défaut est plus rapide qu'une approche basée sur une boucle dépend de facteurs tels que le compilateur et la cible. plate-forme. En général, les compilateurs modernes peuvent optimiser l'initialisation basée sur les boucles en utilisant des éléments intrinsèques spécifiques à la plate-forme. Par conséquent, la différence de performances est souvent négligeable.

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