Passer des tableaux par référence en C
Question :
Les tableaux peuvent-ils être passés par référence en C ? Si oui, quelle est la syntaxe appropriée ?
Réponse :
Oui, les tableaux ne peuvent être transmis que par référence en C . La syntaxe appropriée est :
void foo(double (&bar)[10])
où bar est la référence du tableau et 10 est la taille du tableau.
Cependant, cette syntaxe empêche de transmettre des tableaux de tailles arbitraires. Pour transmettre un tableau de n'importe quelle taille, une fonction basée sur un modèle peut être utilisée :
template<typename T, size_t N> void foo(T (&bar)[N])
où N capture la taille du tableau au moment de la compilation.
Alternatives :
Envisagez d'utiliser std::vector ou std::array (en C 11) comme alternatives au passage de tableaux par référence. Ceux-ci offrent un moyen plus flexible et plus sûr de gérer les collections de données.
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!