uni
Un puntatore è un oggetto il cui valore rappresenta l’indirizzo di un altro oggetto o di una funzione. Se un puntatore è const non si può usarlo per modificare l’oggetto a cui punta, anche se non const. Se provato a stampare restituisce il valore esadecimale dell’indirizzo contenuto. Molto utili come parametri di funzioni, come i riferimenti. Usati nelle liste e nelle array dinamiche.
int intero = 54;
int*puntatore = &intero;
&
è l’operatore indirizzo, semplicemente restituisce l’indirizzo della variabile.
Sul puntatore si possono effettuare varie operazioni, se dopo aver dichiarato il puntatore, ci si mette *
davanti, restituisce la variabile alla quale punta:
int intero = 7;
cout << intero << endl; //7
int*puntatore = &intero;
*puntatore += 8;
cout << *puntatore; //15 (7+8)
I puntatori vengono usati per cambiare il valore di una variabile attraverso una funzione che non dichiara la variabile:
void cambio(int*pun) {
*pun += 8;
}
int main() {
int intero = 78;
cambio(&intero);
cout << intero; //86 (78+8)
}
Vengono anche usati nelle liste, dove uno dei membri di un nodo è l’indirizzo al nodo successivo.
Puntatore a Funzione
I puntatori possono anche contenere indirizzi di funzioni.
Definizione: tipo (*nome) {corpo};
Chiamata attraverso il puntatore: (*nome) (parametri);