Dalla A alla Z passando per C - Robotica
Dalla A alla Z passando per C - Robotica
Dalla A alla Z passando per C - Robotica
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
#include <br />
/* dichiarazione di funzione */<br />
float massimo(float, float);<br />
int main()<br />
{<br />
int a, b;<br />
}<br />
scanf("%d %d", &a, &b);<br />
printf("il massimo è: %f",<br />
/* invocazione di funzione */<br />
massimo(a,b)<br />
);<br />
return 0;<br />
/* definizione di funzione */<br />
float massimo(float a, float b)<br />
{<br />
return b > a ? b : a;<br />
}<br />
Figura 9.1: Esempio di passaggio dei parametri.<br />
Un esempio di passaggio dei parametri ad una funzione creata dall’utente è riportato in<br />
Figura 9.1.<br />
Le variabilia,bdella funzionemassimo non hanno alcun legame con le variabiliaebdichiarate<br />
all’interno della funzione main. Infatti, l’invocazione<br />
massimo(b, a);<br />
era altrettanto lecita. Si noti che nel main sono definite come int mentre nella funzione come<br />
float: il compilatore effettua automaticamente le conversioni di tipo necessarie.<br />
9.4 Passaggio <strong>per</strong> riferimento<br />
In molte situazioni è necessario <strong>per</strong>mettere <strong>alla</strong> funzione chiamata di poter modificare il valore<br />
della variabile passata dal chiamante all’atto dell’invocazione della funzione. La tecnica <strong>per</strong> il<br />
passaggio dei parametri che <strong>per</strong>mette questa o<strong>per</strong>azione è detta passaggio <strong>per</strong> riferimento. Il<br />
passaggio <strong>per</strong> riferimento implica il passaggio del puntatore <strong>alla</strong> variabile. In questo modo <strong>alla</strong><br />
funzione chiamata è nota la locazione di memoria <strong>alla</strong> quale la variabile di interesse è allocata,<br />
ed è quindi possibile modificare il valore della variabile originale scrivendo direttamente in tale<br />
locazione di memoria.<br />
Per esempio, una funzionalità spesso utile è quella dello scambio del valore di due variabili.<br />
Questo può essere fatto implementando una funzione apposita che, come nell’esempio seguente,<br />
scambia il valore di due interi passati <strong>per</strong> riferimento:<br />
97