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.

Tabella 8.1: Lo stato rappresentato in Figura 8.1..<br />

variabile indirizzo valore<br />

i 100 0x1557a27e<br />

pt non rilevante 100<br />

in pt è stato memorizzato l’indirizzo della variabile i.<br />

Analogamente l’o<strong>per</strong>atore unario * <strong>per</strong>mette di ottenere il valore contenuto in un particolare<br />

indirizzo di memoria<br />

i = *pt;<br />

Per ottenere il valore memorizzato devono essere fatti 2 accessi in memoria: il primo accesso<br />

viene fatto all’indirizzo di pt, <strong>per</strong> recu<strong>per</strong>are il dato ivi memorizzato, ovvero l’indirizzo di i . Il<br />

secondo accesso avviene all’indirizzo di i, <strong>per</strong> recu<strong>per</strong>are il valore memorizzato nella variabile i.<br />

8.1 Puntatori e vettori<br />

Per definizione, il valore costante di una variabile di tipo vettore è l’indirizzo dell’elemento<br />

di indice 0 del vettore stesso. Sempre <strong>per</strong> definizione, se p è un puntatore ad un particolare<br />

elemento di un vettore, p+1 punta all’elemento successivo, p+i punta all’elemento che segue dopo<br />

i posizioni.<br />

Nel seguente esempio:<br />

#include <br />

int main()<br />

{<br />

int vett[10];<br />

int *p;<br />

int i;<br />

}<br />

p = vett;<br />

for (i = 0; i < 10; i++)<br />

*(p + i) = 100 + i;<br />

for (i = 0; i < 10; i++)<br />

printf("%d ", vett[i]);<br />

printf("\n");<br />

return 0;<br />

viene dichiarato il vettore vett di 10 elementi interi, e il puntatore ad intero p. L’istruzione<br />

p = vett;<br />

89

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

Saved successfully!

Ooh no, something went wrong!