Ripasso funzioni
description
Transcript of Ripasso funzioni
![Page 1: Ripasso funzioni](https://reader036.fdocumenti.com/reader036/viewer/2022082810/5583841ad8b42a88578b52f5/html5/thumbnails/1.jpg)
RIPASSO INFORMATICA
![Page 2: Ripasso funzioni](https://reader036.fdocumenti.com/reader036/viewer/2022082810/5583841ad8b42a88578b52f5/html5/thumbnails/2.jpg)
Funzioni Le funzioni sono così definite
Tipo nome (parametri)
{ … istruzioni ...
(cioè il codice della funzione)
}
Tipo : il valore di ritorno della funzione
Nome : il nome della funzione
Parametri : lista dei parametri passati dal programma chiamante
![Page 3: Ripasso funzioni](https://reader036.fdocumenti.com/reader036/viewer/2022082810/5583841ad8b42a88578b52f5/html5/thumbnails/3.jpg)
Dichiarazione di una funzione La dichiarazione di una funzione (detta
anche prototipo) é un'unica istruzione,
salvo il fatto che deve terminare con un punto e virgola. Esempio :
int CalcolaArea ( int lato, int base);
![Page 4: Ripasso funzioni](https://reader036.fdocumenti.com/reader036/viewer/2022082810/5583841ad8b42a88578b52f5/html5/thumbnails/4.jpg)
Chiamata della funzione
In caso chiamata la funzione nel programma, il compilatore si occuperà di controllare che il tipo della funzione sia ammissibile.
funzione (int num) { ..... num = num+1; .... }
int b = 0 ...... funzione(b); ..... In questo esempio dato i tipi coincidono. il programma, prima di chiamare funzione, copia il
valore della propria variabile b nell'argomento a, che diventa una variabile locale nell'ambito di funzione; per cui a "muore" appena il controllo ritorna al programma e il valore di b resta invariato, qualunque modifica abbia subito a durante l'esecuzione di funzione.
![Page 5: Ripasso funzioni](https://reader036.fdocumenti.com/reader036/viewer/2022082810/5583841ad8b42a88578b52f5/html5/thumbnails/5.jpg)
Funzioni con overload
Diversamente da C, il linguaggio C++ permette che più funzioni abbiano lo stesso nome; queste funzioni sono definite come overload.
Il compilatore distingue le chiamate di funzioni con lo stesso nome a seconda della lista di parametri.
![Page 6: Ripasso funzioni](https://reader036.fdocumenti.com/reader036/viewer/2022082810/5583841ad8b42a88578b52f5/html5/thumbnails/6.jpg)
Passaggi di parametri
Riferimento
sono variabili introdotte dall'operatore di dichiarazione : &
Occupano la stessa memoria delle variabili a cui si riferiscono.
esempio: int a = &b;o Qualsiasi modifica fatta ad a si troverà
apportata anche alla variabile b
![Page 7: Ripasso funzioni](https://reader036.fdocumenti.com/reader036/viewer/2022082810/5583841ad8b42a88578b52f5/html5/thumbnails/7.jpg)
Passaggio per riferimento In C++ posso passare come argomento
di una funzione un parametro per riferimento ( indirizzo ).
In questo caso, non viene creata una copia della variabile, come avviene per valore, ma la variabile di riferimento della sua corrispondente nel programma chiamante.
![Page 8: Ripasso funzioni](https://reader036.fdocumenti.com/reader036/viewer/2022082810/5583841ad8b42a88578b52f5/html5/thumbnails/8.jpg)
Passaggio per valore
Nel caso si passi ad una funzione dei parametri come per valore, verrà creata una copia della variabile
Al momento del richiamo della funzione il valore dei parametri attuali sono ricopiati nello spazio di memoria allocato ai parametri formali.
Al termine della funzione l'ambiente locale viene eliminato