Passage d'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 toute l'exécution du programme.
Comme pour les valeurs de types de données simples, il est possible de passer des tableaux en tant qu'arguments de fonction !
Passage d'un tableau à une dimension en argument
Pour passer un tableau à une dimension en argument d'une fonction, il faut utiliser les crochets [] après le nom de la variable dans la signature de la fonction :
main.cpp
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 }
Passage d'un tableau à deux dimensions en argument
Le passage d'un tableau à deux dimensions est très similaire à celui d'un tableau à une dimension : il faut utiliser [][] après le nom de la variable.
Mais il existe une différence importante : en C++, il n'est pas possible de passer directement un tableau 2D en utilisant la syntaxe datatype arrayName[][] comme argument de fonction.
Lorsque vous passez un tableau 2D à une fonction, il est nécessaire de spécifier la taille d'au moins une dimension du tableau à l'intérieur des crochets [][]. Cela s'explique par le fait que C++ doit connaître la taille de la dimension pour calculer correctement les décalages mémoire lors de l'accès aux éléments du tableau.
main.cpp
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 être la suivante :
Spécifier uniquement le nombre de lignes
ou
Spécifier à la fois le nombre de lignes et de colonnes
Lorsque la fonction est appelée dans le bloc main(), le nom du tableau est utilisé comme argument sans aucun opérateur supplémentaire.
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
Awesome!
Completion rate improved to 5
Passage d'un Tableau Statique comme Argument de la Fonction
Glissez pour afficher le menu
En C++, un tableau statique est un tableau dont la taille est déterminée à la compilation et reste constante pendant toute l'exécution du programme.
Comme pour les valeurs de types de données simples, il est possible de passer des tableaux en tant qu'arguments de fonction !
Passage d'un tableau à une dimension en argument
Pour passer un tableau à une dimension en argument d'une fonction, il faut utiliser les crochets [] après le nom de la variable dans la signature de la fonction :
main.cpp
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 }
Passage d'un tableau à deux dimensions en argument
Le passage d'un tableau à deux dimensions est très similaire à celui d'un tableau à une dimension : il faut utiliser [][] après le nom de la variable.
Mais il existe une différence importante : en C++, il n'est pas possible de passer directement un tableau 2D en utilisant la syntaxe datatype arrayName[][] comme argument de fonction.
Lorsque vous passez un tableau 2D à une fonction, il est nécessaire de spécifier la taille d'au moins une dimension du tableau à l'intérieur des crochets [][]. Cela s'explique par le fait que C++ doit connaître la taille de la dimension pour calculer correctement les décalages mémoire lors de l'accès aux éléments du tableau.
main.cpp
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 être la suivante :
Spécifier uniquement le nombre de lignes
ou
Spécifier à la fois le nombre de lignes et de colonnes
Lorsque la fonction est appelée dans le bloc main(), le nom du tableau est utilisé comme argument sans aucun opérateur supplémentaire.
Merci pour vos commentaires !