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

Sezione 2. Capitolo 4
some-alt