Quindi sto cercando di imparare il C++ e mi sono imbattuto in qualcosa che mi imbarazza leggermente. Ho il codice,Chiarimento dei riferimenti in C++
int x = 0;
int &y = x;
cout << &x<< " " << x << " " << &y << " " <<y<< endl;
Questo compila bene e si traduce in:
0 003AFA08 0 003AFA08
Quello che ho difficoltà a capire perché la conversione di x, int, a & y, un riferimento, non fa causare un errore. In un primo momento ho pensato che fosse una sorta di conversione tuttavia,
int &y = &x;
genera un errore.
Qualcuno può spiegare perché questo funziona in questo modo? Grazie in anticipo.
Quindi si vuole sapere perché l'operatore di inserimento del flusso '' 'può stringificare l'indirizzo di una variabile come una stringa esadecimale numerica ma non si può assegnare l'indirizzo di un' int' (con tipo 'int *') a 'int &'? – bobbymcr
Immagino che sia '003AFA08 0 003AFA08 0' – onemach