Maison >développement back-end >C++ >Comment puis-je transmettre un tableau par référence en C pour éviter la copie ?
Passer un tableau par référence en C
Passer un tableau par référence vous permet d'accéder au tableau d'origine au sein d'une fonction sans avoir à le copier il. En C , vous pouvez utiliser l'opérateur & pour passer un tableau par référence.
Considérez l'extrait de code suivant :
void foo(int (&myArray)[100]) { // Access and manipulate the elements of myArray here } int main() { int a[100]; foo(a); }
Dans cet exemple, la fonction foo prend un tableau de 100 entiers comme référence. La syntaxe (&myArray)[100] précise que myArray est passé par référence et qu'il s'agit d'un tableau de 100 entiers.
L'opérateur (&) est utilisé pour obtenir l'adresse du tableau. Les parenthèses sont nécessaires pour lever l'ambiguïté de l'expression : l'opérateur & a une priorité plus élevée que l'opérateur [], donc &myArray[100] ferait référence à l'adresse du 100ème élément du tableau, et non à l'adresse du tableau lui-même.
Passer un tableau par référence plutôt que par valeur est bénéfique car cela évite la surcharge liée à la copie de l'intégralité du tableau dans la fonction. Ceci est particulièrement important pour les grands tableaux, car cela peut améliorer considérablement les performances.
Notez que la syntaxe (&myArray)[100] n'accepte que les tableaux de 100 entiers. Si vous souhaitez transmettre un tableau d'une taille différente, vous pouvez utiliser la syntaxe (&myArray), qui accepte les tableaux de n'importe quelle taille. Cependant, l'utilisation de cette syntaxe signifie que vous ne pouvez pas utiliser sizeof sur myArray dans la fonction.
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!