Así que estoy tratando de aprender C++ y me he encontrado con algo que me desconcierta un poco. Tengo el código,Aclaración de referencias en C++
int x = 0;
int &y = x;
cout << &x<< " " << x << " " << &y << " " <<y<< endl;
Este compila bien y da como resultado:
0 003AFA08 0 003AFA08
Lo que tengo problemas para entender por qué la conversión de X, un int, a & y, una referencia, no lo hace provocar un error Al principio pensé que era algún tipo de conversión, sin embargo,
int &y = &x;
resulta en un error.
¿Alguien puede explicar por qué esto funciona de esta manera? Gracias por adelantado.
Así que desea saber por qué el operador de inserción de flujo '<<' puede escribir la dirección de una variable como una cadena hexadecimal numérica pero no puede asignar la dirección de un 'int' (con tipo' int * ') a 'int &'? – bobbymcr
Supongo que es '003AFA08 0 003AFA08 0' – onemach