Dans ce didacticiel, nous allons apprendre à passer un tableau unidimensionnel et multidimensionnel en tant que paramètre de fonction en C ++ à l'aide d'exemples.
En C ++, nous pouvons passer des tableaux comme argument à une fonction. Et nous pouvons également renvoyer des tableaux à partir d'une fonction.
Avant d'en savoir plus sur le passage de tableaux en tant qu'argument de fonction, assurez-vous de connaître les tableaux C ++ et les fonctions C ++.
Syntaxe pour transmettre des tableaux en tant que paramètres de fonction
La syntaxe pour passer un tableau à une fonction est:
returnType functionName(dataType arrayName(arraySize)) ( // code )
Voyons un exemple,
int total(int marks(5)) ( // code )
Ici, nous avons passé un int
tableau de types nommé marks à la fonction total()
. La taille du tableau est de 5.
Exemple 1: Passer un tableau unidimensionnel à une fonction
// C++ Program to display marks of 5 students #include using namespace std; // declare function to display marks // take a 1d array as parameter void display(int m(5)) ( cout << "Displaying marks: " << endl; // display array elements for (int i = 0; i < 5; ++i) ( cout << "Student " << i + 1 << ": " << m(i) << endl; ) ) int main() ( // declare and initialize an array int marks(5) = (88, 76, 90, 61, 69); // call display function // pass array as argument display(marks); return 0; )
Production
Affichage des notes: Élève 1:88 Élève 2:76 Élève 3:90 Élève 4:61 Élève 5:69
Ici,
- Lorsque nous appelons une fonction en passant un tableau comme argument, seul le nom du tableau est utilisé.
display(marks);
- Cependant, notez le paramètre de la
display()
fonction.void display(int m(5))
()
. - Le paramètre de fonction est
int m(5)
converti enint* m;
. Cela pointe vers la même adresse indiquée par les marques de tableau. Cela signifie que lorsque nous manipulons m (5) dans le corps de la fonction, nous manipulons en fait les marques de tableau d'origine.
C ++ gère le passage d'un tableau à une fonction de cette manière pour économiser de la mémoire et du temps.
Passage d'un tableau multidimensionnel à une fonction
Nous pouvons également passer des tableaux multidimensionnels comme argument de la fonction. Par exemple,
Exemple 2: Passage d'un tableau multidimensionnel à une fonction
// C++ Program to display the elements of two // dimensional array by passing it to a function #include using namespace std; // define a function // pass a 2d array as a parameter void display(int n()(2)) ( cout << "Displaying Values: " << endl; for (int i = 0; i < 3; ++i) ( for (int j = 0; j < 2; ++j) ( cout << "num(" << i << ")(" << j << "): " << n(i)(j) << endl; ) ) ) int main() ( // initialize 2d array int num(3)(2) = ( (3, 4), (9, 5), (7, 1) ); // call the function // pass a 2d array as an argument display(num); return 0; )
Production
Affichage des valeurs: num (0) (0): 3 num (0) (1): 4 num (1) (0): 9 num (1) (1): 5 num (2) (0): 7 num ( 2) (1): 1
Dans le programme ci-dessus, nous avons défini une fonction nommée display()
. La fonction prend un tableau à deux dimensions, int n()(2)
comme argument et imprime les éléments du tableau.
Lors de l'appel de la fonction, nous transmettons uniquement le nom du tableau à deux dimensions comme argument de la fonction display(num)
.
Remarque : Il n'est pas obligatoire de spécifier le nombre de lignes dans le tableau. Cependant, le nombre de colonnes doit toujours être spécifié. C'est pourquoi nous avons utilisé int n()(2)
.
Nous pouvons également passer des tableaux de plus de 2 dimensions comme argument de fonction.
C ++ renvoyant un tableau à partir d'une fonction
Nous pouvons également renvoyer un tableau à partir de la fonction. Cependant, le tableau réel n'est pas renvoyé. Au lieu de cela, l'adresse du premier élément du tableau est renvoyée à l'aide de pointeurs.
Nous découvrirons comment renvoyer des tableaux à partir d'une fonction dans les prochains tutoriels.