Nel c/c++ esiste una entità nota come puntatore. Il puntatore è una peculiarità del linguaggio c/c++ che lo rende molto potente (e pericoloso…).
Per esempio, l’istruzione :
a = 10;
assegna il valore 10 alla variabile a. Ma che cosa è una variabile ? Nient’altro che una cella della vostra memoria di lavoro (RAM).
Per prelevare l’indirizzo di questa cella di memoria utilizziamo l’operatore & (address). In questo modo la seguente istruzione :
pointer = &a;
non farà altro che assegnare alla variabile pointer l’indirizzo in memoria della variabile a.
In questo modo le ultime due istruzioni seguenti sono del tutto equivalenti.
int a;
int *pointer;
pointer=&a;
a = 5;
*pointer = 5;
Infatti entrambe le istruzioni assegnano alla variabile a il valore 5.
Esempio:
int a;
int *pointer;
pointer=&a;
*pointer = 5;
*pointer = *pointer + a;
// Dopo questa istruzione a vale 10