¿Pueden las referencias referirse a una ubicación no válida en C++?

Variables de referencia: puede crear un segundo nombre para una variable en C++, que puede usar para leer o editar los datos originales contenidos en esa variable. Si bien esto puede parecer poco atractivo al principio, declarar una referencia y asignarle una variable le permite tratar la referencia como si fuera la variable original con el fin de acceder y modificar el valor de la variable original, incluso si el segundo nombre ( la referencia) está en un ámbito diferente. Esto significa que si hace referencia a los argumentos de su función, podrá cambiar esencialmente los datos proporcionados en la función. Esto contrasta con el funcionamiento general de C++, en el que los parámetros de la función se copian en nuevas variables. También ayuda a ahorrar tiempo.

En C++, las variables de referencia son más seguras que los punteros porque las variables de referencia se deben inicializar y no se pueden cambiar para hacer referencia a otra cosa una vez que se inicializan. Pero hay excepciones en las que podemos tener referencias no válidas.

1) Referencia al valor en el puntero no inicializado

int *ptr;
int &ref = *ptr; // Reference to value at 
                 // some random memory location

2) Se devuelve la referencia a una variable local

int& fun()
{
int a = 10;
return a;
}

Una vez que fun() regrese, se recuperará el espacio que se le asignó en el marco de la pila. Entonces la referencia a una variable local no será válida.

Escriba comentarios si encuentra algo incorrecto en el artículo anterior o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Categories C++

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *