Maison >développement back-end >C++ >Comment passer un tableau par référence en C ?

Comment passer un tableau par référence en C ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-21 07:02:10196parcourir

How Do I Pass an Array by Reference in C  ?

Passer un tableau par référence

Lorsque vous transmettez un tableau à une fonction, il est important de déterminer si vous souhaitez transmettre le tableau par valeur ou par référence. Le passage par valeur crée une copie du tableau, tandis que le passage par référence permet à la fonction de modifier le tableau d'origine.

Passer un tableau par syntaxe de référence

Pour passer un tableau par référence, nous utilisons la syntaxe suivante :

void foo(int (&myArray)[100]);

Dans cette syntaxe, myArray est une référence à un tableau de 100 entiers. Cela signifie que toutes les modifications apportées à myArray dans la fonction foo() seront reflétées dans le tableau d'origine.

Parenthèses séparées et grands crochets

Les parenthèses séparées suivies de les grandes parenthèses (&myArray)[100] servent à deux fins :

  • Les parenthèses () indiquent que nous passons une référence à un tableau.
  • Les grands crochets [] spécifient la taille du tableau transmis. Dans ce cas, il s'agit d'un tableau de 100 entiers.

Déclarations de tableau alternatives

Il est à noter que les déclarations suivantes sont toutes équivalentes :

void foo(int * x);
void foo(int x[100]);
void foo(int x[]);

Cependant, la déclaration suivante est différent :

void foo(int (&x)[100]);

Cette déclaration n'accepte que des tableaux de 100 entiers, et nous pouvons utiliser en toute sécurité sizeof sur x.

Déclaration invalide

La La déclaration suivante n'est pas valide :

void foo(int & x[100]); // error

Ceci est analysé comme un "tableau de références", qui n'est pas un type de données valide en C .

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