
Originariamente inviata da
shodan
No. La variabile reference occupa lo stesso spazio in memoria della variabile referenziata perché "
è la variabile referenziata sotto falso nome. Il fatto che io li definisca puntatori mascherati è dovuto al fatto che i reference si comportano( ai fini pratici ) come dei puntatori (con qualche scomodità in meno).
Però se scrivi :
codice:
int p= 10;
int* q;
q = &p
q avra un proprio spazio all'interno dello stack e questo spazio esiste a prescindere da quello che gli verrà messo dentro. Ossia l'indirizzo di q non è l'indirizzo di p.
Quando scrivi:
codice:
int p = 10;
int& q = p;
q e p condividono lo stesso spazio all'interno dello stack. Ossia l'indirizzo di q è lo stesso di p.
Un pò come in una discussione parlare con una persona chiamandola un volta per nome e una per cognome.