Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Passer un Tableau Statique comme Argument de la Fonction | Spécification des Arguments de Fonction
Fonctions C++
course content

Contenu du cours

Fonctions C++

Fonctions C++

1. Introduction
2. Spécification des Arguments de Fonction
3. Spécification des Valeurs de Retour de Fonction
4. Quelques Sujets Avancés

book
Passer un Tableau Statique comme Argument de la Fonction

En C++, un tableau statique est un tableau dont la taille est déterminée à la compilation et reste constante pendant l'exécution du programme.

Comme pour les valeurs de types de données simples, nous pouvons passer des tableaux comme arguments de fonction !

Passer un tableau à une dimension comme argument

Pour passer un tableau à une dimension en tant qu'argument de la fonction, nous devons utiliser les crochets [] après le nom de la variable dans la signature de la fonction :

cpp

main

copy
12345678910111213141516
#include <iostream> // Function to process a 1-dimensional static array void processArray(int arr[], const int size) { for (int i = 0; i < size; ++i) std::cout << arr[i] << " "; // Print each element of the array std::cout << std::endl; } int main() { const int SIZE = 5; int oneDimArray[SIZE] = {1, 2, 3, 4, 5}; // Initialize a 1-dimensional static array std::cout << "Original Array: "; processArray(oneDimArray, SIZE); // Call the function to process the array }

Passer un tableau à deux dimensions comme argument

Passer un tableau à deux dimensions est très similaire au passage d'un tableau à une dimension : nous devons utiliser le [][] après le nom de la variable.

Mais il y a une différence importante : en C++, vous ne pouvez pas passer directement un tableau 2D en utilisant la syntaxe datatype arrayName[][] comme argument de fonction.

Lorsque vous passez un tableau 2D à une fonction, vous devez spécifier la taille d’au moins une dimension de tableau à l'intérieur des crochets [][]. Ceci est nécessaire car C++ requiert de connaître la taille de la dimension afin de calculer correctement les décalages mémoire lors de l'accès aux éléments du tableau.

cpp

main

copy
1234567891011121314151617181920212223
#include <iostream> // Function to process a 2D array with a specific number of rows void processMatrix(int matrix[][3], const int rows) { // Iterate through each row for (int i = 0; i < rows; ++i) { // Iterate through each column (assuming 3 columns in this case) for (int j = 0; j < 3; ++j) { std::cout << matrix[i][j] << " "; // Print each element of the matrix } std::cout << std::endl; // Move to the next line after processing each row } } int main() { const int ROWS = 2; // Number of rows in the 2D array int twoDimArray[ROWS][3] = {{1, 2, 3}, {4, 5, 6}}; // Initialize a 2D array std::cout << "Original Matrix:" << std::endl; processMatrix(twoDimArray, ROWS); // Call the function to process the matrix, passing the number of rows }

Puisque nous devons spécifier au moins une des dimensions du tableau (peu importe laquelle), la signature de cette fonction peut également ressembler à ceci:

Spécifiez uniquement le nombre de lignes

ou

Spécifiez à la fois le nombre de lignes et de colonnes

Lorsque nous appelons la fonction à l'intérieur du bloc main(), nous utilisons le nom d'un tableau comme argument sans aucun opérateur supplémentaire.

Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 2. Chapitre 4
We're sorry to hear that something went wrong. What happened?
some-alt