Operatori puntatore C ++
C ++ fornisce due operatori puntatore, che sono (a) indirizzo dell'operatore & e (b) operatore indiretto *.
Un puntatore è una variabile che contiene l'indirizzo di un'altra variabile oppure si può dire che una variabile che contiene l'indirizzo di un'altra variabile "punta" all'altra variabile. Una variabile può essere qualsiasi tipo di dati incluso un oggetto, una struttura o ancora il puntatore stesso.
Il . L'operatore (punto) e l'operatore -> (freccia) vengono utilizzati per fare riferimento a singoli membri di classi, strutture e unioni.
L'indirizzo dell'operatore e
Il & è un operatore unario che restituisce l'indirizzo di memoria del suo operando. Ad esempio, se var è una variabile intera, & var è il suo indirizzo. Questo operatore ha la stessa precedenza e associatività da destra a sinistra degli altri operatori unari.
Dovresti leggere l'operatore & come "the address of" che significa &var verrà letto come "l'indirizzo di var".
L'operatore indiretto *
Il secondo operatore è l'operatore di riferimento indiretto * ed è il complemento di &. È un operatore unario che restituisce il valore della variabile situata all'indirizzo specificato dal suo operando.
Il seguente programma esegue le due operazioni
#include <iostream>
using namespace std;
int main () {
int var;
int *ptr;
int val;
var = 3000;
// take the address of var
ptr = &var;
// take the value available at ptr
val = *ptr;
cout << "Value of var :" << var << endl;
cout << "Value of ptr :" << ptr << endl;
cout << "Value of val :" << val << endl;
return 0;
}
Quando il codice precedente viene compilato ed eseguito, produce il seguente risultato:
Value of var :3000
Value of ptr :0xbff64494
Value of val :3000