18.08.2013 Views

Dalla A alla Z passando per C - Robotica

Dalla A alla Z passando per C - Robotica

Dalla A alla Z passando per C - Robotica

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!