CCorsi

Utilizzo delle funzioni ricorsive in C

Come già introdotto in un precedente articolo -> CLICCA QUI. Le funzioni sono dei costrutti sintattici che ci consentono di raggruppare una serie di istruzioni, i motivi per le quali bisognerebbe utilizzarle sono:

  • Riduzioni dei tempi di produzione del codice
  • Riduzione della manutenzione
  • Riduzione della probabilità di errori logici

Perché utilizzare le funzioni porta a questi vantaggi? Semplicemente la funzione ti consente di scrivere il codice una sola volta e ti sarà sufficiente esclusivamente richiamarla, in questo modo se avessi necessità di effettuare una correzione necessiterai di farlo esclusivamente in una sola porzione del tuo programma.

Qual è dunque la differenza tra le funzioni semplici e le funzioni ricorsive? Le funzioni ricorsive sono delle funzioni che chiamano se stesse. Questo è uno strumento molto potente della programmazione ma rappresenta un’arma a doppio taglio in quanto è possibile che si generino casi in cui la funzione si richiama all’infinito mandando in loop il vostro programma.

Bisogna quindi andare comprendere il parametro per il quale la funzione debba andare a terminare la sua medesima chiamata. Ad esempio la seguente funzione :

void print(){
	printf("Ciao \n");
	print();
}

Chiamerebbe se stessa all’infinito fino a quando il programma nella quale viene eseguita non vada a riempire totalmente la RAM del vostro computer generando l’errore che viene definito come Stack Overflow.

Contrariamente nell’esempio seguente stamperemo tutti i numeri da 1 a 50 con un controllo della condizione di richiamo della funzione ricorsiva

void print(int n){
	printf("%d \n",n);
	if(n < 50)
		print(n+1);
}

In questo caso la funzione stampa il valore che le viene fornito come parametro e nel caso in cui il valore fosse inferiore a 50 richiamerebbe se stessa interrompendo invece il ciclo nel caso in cui la condizione dell’if dovesse risultare falsa.

LINK UTILI

Pagina Instagram: https://www.instagram.com/developer_sumo/
Corso C: https://www.developersumo.com/c/
I nostri Corsi: https://www.developersumo.com/corsi/

What's your reaction?

Excited
0
Happy
0
In Love
0
Not Sure
0
Silly
0

You may also like

More in:C

Leave a reply

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *