Questo articolo spiegherà in dettaglio cos’è Dereference operator e come usare Dereference operator.
Operatore di dereferenziazione
Nella programmazione per computer, un operatore di dereferenziazione, noto anche come operatore di indiretto, opera su una variabile puntatore. Restituisce il valore della posizione, o l-value in memoria puntato dal valore della variabile. Nel linguaggio di programmazione C, l’operatore di deferenza è indicato con un asterisco
.
int x; int *p;
Ad esempio, in C, possiamo dichiarare una variabile x che contiene un valore intero e una variabile p che contiene un puntatore a un valore intero in memoria:
Qui, l’asterisco dice al compilatore, “p non è un intero, ma piuttosto un puntatore a una posizione in memoria che contiene un intero”. Qui, non è un dereference, ma parte di una dichiarazione di puntatore.
p = &x;
Ora possiamo impostare p sulla posizione allocata per il valore di x usando l’operatore &, che significa “indirizzo di”.
Questa azione dice al compilatore: “L’indirizzo in memoria a cui punta p è l’indirizzo che hai allocato per l’intero x”.
x = 1; printf("%d", x);
Per illustrare, se impostiamo il valore di x su 1 utilizzando il metodo convenzionale e stampiamo il valore, l’output sarà 1.
*p = 2; printf("%d", x);
Tuttavia, possiamo anche modificare il valore di x facendo riferimento a p. Lo facciamo con un asterisco:
E l’output cambia in 2.
In altre parole, dopo che p è stato dichiarato come un puntatore dello stesso tipo di x e quindi impostato per puntare al valore di x, possiamo usare x e *p in modo intercambiabile. Poiché entrambi si riferiscono alla stessa cosa, cambiando il valore di uno cambia il valore dell’altro.