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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Capitolo 8<br />

I puntatori<br />

La memorizzazione di una variabile richiede un certo numero di byte. La variabile è collocata<br />

ad un particolare indirizzo di memoria.<br />

Un puntatore è un tipo di variabile che serve a memorizzare un indirizzo di memoria. E’<br />

possibile, <strong>per</strong> esempio, memorizzare l’indirizzo di un’altra variabile del programma.<br />

In Figura 8.1 è rappresentata la variabile i di dimensione 4 bytes, il cui indirizzo è pari a 100.<br />

Un puntatore che punta <strong>alla</strong> variabile i conterrà quindi il valore 100. La situazione è riassunta<br />

in Tabella 8.1. Si noti che l’indirizzo a cui è allocato il puntatore pt non è rilevante, in quanto<br />

potrebbe essere allocato indifferentemente in qualsiasi punto della memoria.<br />

I puntatori sono un tipo di dato elementare usato <strong>per</strong> accedere <strong>alla</strong> memoria e manipolare<br />

indirizzi. Una variabile di tipo puntatore <strong>per</strong>mette di memorizzare l’indirizzo di una variabile.<br />

La dichiarazione:<br />

int *pt;<br />

dichiara una nuova variabile pt di tipo puntatore, dove l’oggetto puntato è di tipo intero.<br />

L’o<strong>per</strong>atore unario & <strong>per</strong>mette di ottenere l’indirizzo di un oggetto (in genere una variabile)<br />

pt = &i;<br />

memoria<br />

100<br />

0x15 0x57<br />

indirizzo di inizio<br />

della variabile i<br />

101 102<br />

0xa2<br />

Figura 8.1: Una variabile in memoria.<br />

88<br />

103<br />

0x7e

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

Saved successfully!

Ooh no, something went wrong!