Maison >développement back-end >C++ >Comment puis-je transmettre des tableaux par référence en C ?

Comment puis-je transmettre des tableaux par référence en C ?

DDD
DDDoriginal
2024-11-28 03:37:15999parcourir

How Can I Pass Arrays by Reference in C  ?

Passer des tableaux par référence en C

Le passage de tableaux par référence en C peut être réalisé en utilisant la syntaxe appropriée. L'extrait de code fourni dans la question génère une erreur de compilation car la syntaxe est incorrecte.

La bonne façon de transmettre un tableau par référence est d'utiliser le format suivant :

void foo(double(&&bar)[10]);

Cette syntaxe indique que bar est une référence à un tableau de 10 éléments doubles. Passer un tableau par référence permet à la méthode foo de modifier les éléments du tableau et de les renvoyer à l'appelant.

Cependant, cette approche a une limitation : elle restreint l'appelant à passer des tableaux contenant exactement 10 éléments. Pour surmonter ce problème, vous pouvez utiliser une fonction basée sur un modèle :

template<typename T, size_t N>
void foo(T(&&bar)[N]);

Ce modèle capture la taille du tableau au moment de la compilation, permettant à l'appelant de transmettre des tableaux de n'importe quelle taille.

Alternativement, vous pouvez utiliser std::vector, qui offre un moyen plus flexible de transmettre et de modifier des tableaux de taille arbitraire. En C 11 et versions ultérieures, vous pouvez également utiliser std::array pour les tableaux de taille fixe.

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