Passare un array a una funzione C++

Passing An Array Function C

Un array è un gruppo di elementi dello stesso tipo di dati. Molte funzioni vengono eseguite su array sia nel programma principale che al di fuori di esso, nelle funzioni. In C++, nel caso delle funzioni, dobbiamo passarle. Questo viene fatto tramite parametri come argomenti. Questi argomenti possono essere in modi diversi, array di dimensioni considerevoli o tramite l'array di puntatori. In questo tutorial, tratteremo alcuni aspetti principali del trasferimento di array utilizzando diversi parametri delle funzioni.

Sintassi

[Ritornogenere] [nome difunzione] (datigenerenomearray[Vettoredimensione])

{

funzionecorpo

}

Esempio 1

Consideriamo un esempio in cui dobbiamo stampare i voti degli studenti nel programma C++. Questa stampa verrà eseguita in una funzione separata anziché nel programma principale. Al contrario, prenderemo input nel programma principale e trasferiremo questi valori alla funzione come parametro. Considera la funzione. Nel suo parametro, c'è una variabile del tipo di dati dell'array che accetterà i valori di un array. L'intero array è dichiarato qui. I segni verranno visualizzati con l'aiuto del ciclo for. Come negli array, abbiamo bisogno di cicli per ottenere la stampa da essi.





Spostandoci verso la funzione principale, dichiariamo un array con le sue dimensioni e i suoi valori. Poiché dobbiamo chiamare la funzione. Quindi il metodo è scrivere il nome della funzione con il nome dell'array nel parametro come argomento. Non abbiamo definito la dimensione dell'array.



Schermo(segni);

L'argomento nel parametro implica l'indirizzo di memoria dell'array. Nel parametro dell'intestazione della funzione, int m[7] viene convertito in int *m. Questo include lo stesso indirizzo dell'array originale. Quando usiamo m[5] nel corpo della funzione, manipoleremo l'array originale.

Visualizzazione nulla(int m[7] )

Nel sistema operativo Linux, ottenere l'output tramite un terminale richiede l'installazione di alcuni prerequisiti. Ha bisogno di un compilatore per compilare e quindi eseguire il codice nel terminale del prompt dei comandi. G++ è usato in C++ per la compilazione.



$g++ -ocodice3 codice3.c

$./codice3

Dove –o viene utilizzato per memorizzare l'output dal file di origine al file di output.

Dall'output, puoi osservare che tutti i numeri iniziati nell'array nella funzione principale vengono passati e visualizzati attraverso la funzione display.

Esempio 2

Un altro esempio relativo all'array che passa attraverso il parametro è il passaggio di un array multidimensionale alla funzione. Qui viene utilizzata una matrice bidimensionale (2d). Nella funzione main, dobbiamo inizializzare un array.

Int array[riga][colonna]

L'inizializzazione dell'array 2D include riga e colonna. E il loro ordine deve essere mantenuto per tutto il programma. L'array 2d viene inizializzato con due numeri tra parentesi. Come abbiamo descritto 2 colonne nell'inizializzazione.

Schermo(nessuno);

Useremo solo il nome dell'array nel parametro come argomento.

Ora vedremo il funzionamento della funzione display. Quando la funzione viene avviata, è necessaria una variabile array per accettare un array passato dalla chiamata di funzione attraverso il programma principale.

Visualizzazione nulla(int n[][2] )

È obbligatorio indicare il numero di colonne. In confronto, non è essenziale nel caso delle righe. Ecco perché qui abbiamo lasciato vuote le parentesi quadre poiché usiamo il ciclo for per visualizzare i risultati. Ma nel caso di un array bidimensionale, usiamo un ciclo for annidato. Contiene due istruzioni for con 2 variabili al loro interno.

Possiamo visualizzare l'output utilizzando lo stesso compilatore. Puoi vedere i risultati che ogni valore viene visualizzato separatamente con la riga e il numero di colonna.

Esempio 3

Questo esempio è un po' diverso dai precedenti. In questo esempio, menzioniamo la dimensione dell'array nel parametro della chiamata alla funzione. E nella dichiarazione della funzione, viene introdotta anche una variabile per accettare la dimensione di un array.

A partire dal programma principale, viene inizializzato un array con i valori.

avg = getAverage(bilancia,5);

Il risultato verrà memorizzato nella variabile avg. Invece di passare solo il nome dell'array, al parametro viene aggiunta anche la dimensione dell'array.

Il parametro contiene anche la variabile del tipo di matrice e un tipo di dati intero per ricevere la dimensione dell'array. Il tipo del programma principale è int perché riceverà un valore intero dalla funzione. In caso contrario, è nullo negli altri casi.

Ora vedremo l'output. Questo valore è visibile attraverso l'immagine ottenuta dalla funzione.

Esempio 4

Questo esempio si riferisce alla determinazione del numero massimo nell'array, infatti, da due array. Qui inizializziamo due array nel programma principale. Entrambi gli array vengono passati separatamente alla funzione in chiamate di funzione separate

printMax(arr1);

printMax(arr2);

dove printMax è il nome della funzione e arr è l'array. Il risultato non tornerà dalla funzione e viene visualizzato lì. For loop calcolerà il numero massimo in entrambi gli array. L'istruzione If viene utilizzata all'interno del ciclo for. L'intestazione della funzione è:

void printMax(int arra[5])

Poiché entrambi gli array contengono valori diversi, entrambi i risultati saranno diversi.

Esempio 5

Questo esempio è il riepilogo di tutti i tipi di array che passano attraverso i parametri. Questi potrebbero essere array dimensionati, non dimensionati o puntatori. Li esamineremo uno per uno.

Nel programma principale, ogni funzione viene dichiarata per prima. Puoi evidenziare la differenza nella loro dichiarazione.

Int somma1(int tmp[5]);

Int somma2(int tmp[]);

Int somma3(int*tmp);

Questi tre array mostrano che gli array possono essere passati con questi parametri nella funzione.

Dopo l'inizializzazione della funzione, abbiamo il programma principale in cui viene dichiarato l'array. A differenza dell'esempio precedente, viene inizializzato un array invece di due, ma viene passato in tre modi diversi. Ora vedremo le chiamate di funzione fatte qui.

Totale = somma1(saldi);

Totale =somma2(saldi);

Totale = somma3(saldi);

L'output viene visualizzato nella funzione principale, quindi viene dichiarata una variabile per accettare il valore restituito dalla funzione. Da tutte e tre le chiamate di funzione, puoi vedere che qui i parametri sono gli stessi. Ogni array contiene solo il nome di un array. Ma i parametri della funzione che accetta l'array sono diversi.

Il corpo interno di tutte e tre le funzioni è lo stesso, poiché la somma di tutti i numeri viene calcolata dall'utilizzo del ciclo For. La metodologia e i valori dell'array sono gli stessi; solo c'è discriminazione tra i parametri delle funzioni. Quindi, è dimostrato che possiamo usare metodi diversi per accettare un array o eseguire la stessa funzionalità, e la risposta è la stessa. Possiamo confermarlo controllando l'output. Utilizzando la stessa procedura di compilazione, otterremo l'output mostrato nell'immagine allegata di seguito.

Puoi vedere che la risposta è la stessa per tutte e tre le funzioni utilizzate.

Conclusione

In questo articolo, l'utente verrà a conoscenza del metodo di passaggio di un array nei parametri. Gli array possono essere gestiti in molti casi quando si tratta di restituire il valore o passarlo in argomenti.