C ti consente di creare una situazione in cui diversi puntatori fanno riferimento esattamente allo stesso punto della memoria. Puoi dichiarare più puntatori e far sì che tutti abbiano come target la stessa variabile. Questa non è solo una stranezza teorica. Succede costantemente nel codice reale.
Considera questo frammento:
Qui, “p” prende l’indirizzo di “i”. “q” fa lo stesso. Quindi r assume il valore di p. Poiché “p” contiene l’indirizzo di “i”, anche “r” ora punta a “i”. L’operatore di assegnazione copia l’indirizzo dal lato destro a quello sinistro. Non copia i dati. Copia la posizione.
Dopo l’esecuzione di queste righe, “i” ha effettivamente acquisito degli alias. Ora puoi accedere all’intero “i” tramite il suo nome originale o tramite uno qualsiasi dei puntatori.
La variabile “i” ora ha quattro nomi: “i”, “p”, “ q” e “*r”.
Non esiste un limite rigido al numero di puntatori che possono contenere lo stesso indirizzo. Puoi incatenarli alla profondità di cui hai bisogno. Cambia *p e *r vede il cambiamento. Stanno tutti guardando la stessa cella di memoria.
Qualsiasi numero di puntatori può puntare allo stesso indirizzo.
Questo comportamento è fondamentale per il funzionamento dei puntatori. Non è un caso speciale. È l’impostazione predefinita. Capire questo aiuta a evitare confusione durante il debug. Se vedi valori imprevisti, controlla se più puntatori stanno modificando la stessa posizione. Non è magia. È solo ricordo.


























