Array e funzioni
Fa parte della sezione Fondamenti del percorso C++ di Coddy. Lezione 62 di 74.
Gli array non possono essere passati direttamente alle funzioni come array completi. Quando provi a passare un array a una funzione, "decade" in un puntatore al suo primo elemento.
Per esempio:
int numbers[5] = {1, 2, 3, 4, 5};
void processArray(int arr[]) {
int size = std::size(arr);
}std::size(arr) non ti restituirà la dimensione effettiva dell'array. Qui arr è in realtà un puntatore, non un array. Imparerai a conoscere i puntatori nel prossimo corso.
Ecco perché, quando passiamo array alle funzioni, in genere dobbiamo passare la dimensione come parametro separato:
void processArray(int arr[], int size) {
// Ora possiamo lavorare in sicurezza con l'array usando il parametro size
}Ecco come chiamare la funzione:
int numbers[5] = {1, 2, 3, 4, 5};
processArray(numbers, 5);Inoltre, non è possibile restituire un array da una funzione:
int[] processArray(int arr[]) {
return arr;
}Questo non è consentito. Invece dovresti usare la sintassi *:
int* processArray(int arr[]) {
return arr;
}
int* newArr = processArray(arr);La sintassi dell'asterisco (*) fa riferimento ai puntatori, che verranno trattati nel prossimo corso.
Provalo tu
Questa lezione non include una sfida di codice.
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fondamenti
4Operatori Parte 1
Operatori aritmeticiOperatore moduloIncremento/DecrementoPost-incremento/Post-decrementoAbbreviazioni aritmeticheOperatori di confrontoConfronto tra stringhe7Fondamenti di input/output
Istruzione coutIstruzione cinInserimento di stringheRipasso - Fino a 120Ripasso - Vero o falso3Variabili Parte 2
Dichiarazione del tipoConvenzioni di denominazioneRiepilogo - Inizializzare le variabiliConversione di tipo Parte 1Conversione di tipo Parte 26Decisioni
Istruzione ifIf-elseIstruzione switchOperatore condizionaleRiepilogo - If-elseIf-else annidatiEsercitati da solo: Compilatore C++ online