In questa lezione continueremo a studiare alcuni esempi di passaggio di array a funzioni, al fine di consolidare l'argomento.
Primo esempio di passaggio di array a funzioni
Quindi realizziamo un semplice programma che sviluppi due funzioni: insert che permette di inserire i dati in un array e print che invece permette di stampare i dati di un array.
In questo esempio non utilizzeremo i prototipi, ma inseriremo prima le definizioni delle funzioni insert e print, semplicemente per proporre una modalità differente da quella precedente.
La prima funzione che definiremo è dunque insert che con un semplice ciclo for permetterà l'inserimento di tutti gli elementi di un vettore v[] che è stato passato per indirizzo alla funzione.
Fondamenti solidi di programmazione
Impara le basi della programmazione in C in modo semplice, pratico ed efficace. Variabili, cicli, funzioni, logica e algoritmi.
⏱️9 ore di corso registrato
🧩Più di 50 algoritmi risolti passo passo
🎯Livello base
💻100% online, fruibile quando vuoi
Allo stesso modo costruiamo la funzione print.
Dopo nel main invochiamo semplicemente le nostre funzioni.
Ecco dunque il listato completo dell'esempio di passaggio di array a funzioni.
#include <stdio.h>
#define N 10
void insert(int v[]) {
int i;
for (i<0;i<N;i++) {
printf("inserisci elemento %d: ", i+1);
scanf("%d", &v[i]);
}
}
void print(int v[]) {
int i;
for (i=0; i<N; i++)
printf("%d\t", v[i]);
}
int main() {
int a[N];
insert(a);
print(a);
return 0;
}
Secondo esempio di passaggio di array a funzioni
Proviamo a variare l'esercizio precedente chiedendo quanti elementi inserire in un vettore.
Inoltre utilizziamo int *v, al posto di int v[] che come dicevamo nella precedente lezione sono due metodi equivalenti.
Sviluppiamo quindi la nostra funzione insert che questa volta, al contrario di prima, ci dovrà ritornare il numero degli elementi inseriti (n). Facciamo anche un controllo dell'input su quanti elementi inserire nell'array.
La funzione print avrà come parametri formali l'array passato per indirizzo e il numero degli elementi (n).
Ecco dunque il listato completo di un altro esempio di passaggio di array a funzioni.
#include <stdio.h>
#define N 100
int insert(int *v) { //è uguale a int v[]
int i, n;
do {
printf("Quanti elementi?");
scanf("%d", &n);
} while (n<0 || n>N);
for (i<0;i<n;i++) {
printf("inserisci elemento %d: ", i+1);
scanf("%d", &v[i]);
}
return n;
}
void print(int *v, int n) {
int i;
for (i=0; i<n; i++)
printf("%d\t", v[i]);
}
int main() {
int a[N], n;
n=insert(a);
/*attenzione chiaramente cambia anche l'invocazione della funzione, insert infatti restituisce un intero, il numero degli elementi*/
print(a, n);
return 0;
}
Chiaramente questi sono solo degli esempi molto semplici di passaggio di array a funzioni, nella prossima lezione ne faremo degli altri.
Un'email ogni tanto con i nuovi articoli e le guide — niente spam, ti disiscrivi quando vuoi.
🍪 Questo sito usa i cookie
Utilizziamo cookie tecnici necessari al funzionamento e, previo tuo consenso, cookie
analitici e di terze parti per migliorare l'esperienza di navigazione.
Leggi la Cookie Policy e la
Privacy Policy.