Programmation en C++ – Passer un tableau en paramètre d’une fonction

Si vous voulez passer un tableau unidimensionnel comme argument dans une fonction, vous devrez déclarer un paramètre de l’une des trois manières suivantes et les trois méthodes de déclaration produisent des résultats similaires, car chacun indique au compilateur qu’un pointeur de type entier va être reçu. Pareil, vous pouvez passer des tableaux multidimensionnels en tant que paramètres.
 
 

Méthode 1 : Paramètre de type pointeur
void maFonction(int *parametre) {
   .
   .
   .
}

 

Méthode 2 : Paramètre de type tableau avec dimension
void maFonction(int parametre[10]) {
   .
   .
   .
}

 

Méthode 3 : Paramètre de type tableau sans dimension
void maFonction(int parametre[]) {
   .
   .
   .
}

Exemple :
Maintenant, considérons la fonction suivante, qui prend un tableau comme un argument et leur taille, et elle retourne la moyenne

double moyenne(int tab[], int taille) {

   int i;
   double moy;
   double sum = 0;

   for (i = 0; i < taille; ++i) {
      sum += tab[i];
   }

   moy = sum / taille;

   return moy;
} 

 
 
Maintenant, appelons la fonction ci-dessus comme suit :

#include <iostream>
using namespace std;
 
/* Déclaration de fonction */
double moyenne(int tab[], int taille);

int main () {

   /* Un tableau de 5 éléments */
   int tableau[5] = {1000, 2, 3, 17, 50};
   double moy;

   /* Passez le pointeur du tableau en argument */
   moy= moyenne( tableau, 5 ) ;
 
   /* La sortie de la valeur retournée  */
   cout<<"La valeur moyenne est  "<< moy <<endl;
    
   return 0;
} 

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant :

La valeur moyenne est: 214.400000

Comme vous pouvez le voir, la longueur du tableau n’a pas d’importance parce que le compilateur n’effectue pas un contrôle de limites pour les paramètres.
 

Exemple en utilisant un pointeur :

Dans cette méthode, l’adresse des paramètres réels se copie dans des paramètres formels. Dans l’exemple ci-dessous, nous passons l’adresse de l’élément comme un argument à la fonction, au lieu de leurs valeurs. Nous devons utiliser des pointeurs pour cela.

#include <iostream>
using namespace std;

afficher(int *num)
{
    cout<< *num <<endl;
}

int main()
{
     int tab[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0};
     for (int i=0; i<=10; i++)
     {
         /* Passer l'adresse de chaque élément */
         afficher(&tab[i]);
     }

     return 0;
} 

Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant :

1 2 3 4 5 6 7 8 9 0

 
 

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *