Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Passaggio di un array statico come argomento della funzione | Specifica degli Argomenti di Funzione
Funzioni in C++

Passaggio di un array statico come argomento della funzione

Scorri per mostrare il menu

Passaggio di un array monodimensionale come argomento

Per passare un array monodimensionale a una funzione, inserire [] dopo il nome del parametro nella firma della funzione.

main.cpp

main.cpp

123456789101112131415161718192021
#include <iostream> // Function to process a 1-dimensional static array void process(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; // Initialize a 1-dimensional static array int oneDimArray[SIZE] = {1, 2, 3, 4, 5}; // Call the function to process the array std::cout << "Original Array: "; process(oneDimArray, SIZE); }

Passaggio di un array bidimensionale come argomento

Il passaggio di un array 2D a una funzione funziona in modo simile al passaggio di un array 1D — si utilizza [][] dopo il nome del parametro.

Tuttavia, esiste una differenza importante: in C++, non è possibile dichiarare un parametro di funzione come datatype arrayName[][] senza specificare almeno una dimension. È necessario definire il numero di colonne (o una dimensione) affinché il compilatore possa calcolare correttamente gli offset di memoria durante l'accesso agli elementi dell'array.

main.cpp

main.cpp

1234567891011121314151617181920212223
#include <iostream> // Function to print a 2D array with a fixed number of columns void process(int matrix[][3], const int rows) { // Loop through rows for (int i = 0; i < rows; ++i) { for (int j = 0; j < 3; ++j) // Loop through columns std::cout << matrix[i][j] << " "; // Print each element std::cout << std::endl; // Move to the next line } } int main() { const int ROWS = 2; int arr[ROWS][3] = {{1, 2, 3}, {4, 5, 6}}; std::cout << "Original Matrix:" << std::endl; process(arr, ROWS); // Pass array and row count to the function }
question mark

Quale firma di funzione accetta correttamente un array statico 2D come parametro?

Seleziona la risposta corretta

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 2. Capitolo 4

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Passaggio di un array statico come argomento della funzione

Passaggio di un array monodimensionale come argomento

Per passare un array monodimensionale a una funzione, inserire [] dopo il nome del parametro nella firma della funzione.

main.cpp

main.cpp

123456789101112131415161718192021
#include <iostream> // Function to process a 1-dimensional static array void process(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; // Initialize a 1-dimensional static array int oneDimArray[SIZE] = {1, 2, 3, 4, 5}; // Call the function to process the array std::cout << "Original Array: "; process(oneDimArray, SIZE); }

Passaggio di un array bidimensionale come argomento

Il passaggio di un array 2D a una funzione funziona in modo simile al passaggio di un array 1D — si utilizza [][] dopo il nome del parametro.

Tuttavia, esiste una differenza importante: in C++, non è possibile dichiarare un parametro di funzione come datatype arrayName[][] senza specificare almeno una dimension. È necessario definire il numero di colonne (o una dimensione) affinché il compilatore possa calcolare correttamente gli offset di memoria durante l'accesso agli elementi dell'array.

main.cpp

main.cpp

1234567891011121314151617181920212223
#include <iostream> // Function to print a 2D array with a fixed number of columns void process(int matrix[][3], const int rows) { // Loop through rows for (int i = 0; i < rows; ++i) { for (int j = 0; j < 3; ++j) // Loop through columns std::cout << matrix[i][j] << " "; // Print each element std::cout << std::endl; // Move to the next line } } int main() { const int ROWS = 2; int arr[ROWS][3] = {{1, 2, 3}, {4, 5, 6}}; std::cout << "Original Matrix:" << std::endl; process(arr, ROWS); // Pass array and row count to the function }
Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 2. Capitolo 4
some-alt