0Pricing
C++ Academy · Lección

Por qué las referencias son alias de variables

Conozca las referencias como alias en tiempo de compilación que no pueden reasignarse ni ser nulos.

Por qué las referencias son alias de variables es una lección gratuita de C++ Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de C++ Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de C++ Academy incluye 4 lecciones en total.

¿Qué es una referencia?

Una referencia es un alias en tiempo de compilación para otra variable. No es un puntero ni una copia: es el mismo objeto con otro nombre.

Sintaxis de las referencias

Coloque & después del tipo. Las referencias deben inicializarse en su declaración y no se pueden volver a vincular.

int x = 10;
int& ref = x;     // ref is an alias for x
ref = 20;         // x is now 20

Comparación con los punteros

Tanto las referencias como los punteros permiten el acceso indirecto, pero:

  • Las referencias deben inicializarse; los punteros pueden ser nulos
  • Las referencias no se pueden reasignar a otro objeto
  • Las referencias nunca usan * ni ->: se comportan como variables normales

No se pueden volver a vincular

Una vez vinculada, una referencia siempre se refiere al mismo objeto. Asignarle un valor modifica el valor subyacente, no la referencia en sí.

int a = 1, b = 2;
int& r = a;
r = b;       // a becomes 2, r still refers to a

Las referencias tienen la misma dirección

Una referencia se comporta como si fuera la variable original. Obtener su dirección proporciona la dirección del objeto referido.

int x = 42;
int& r = x;
std::cout << (&r == &x);   // 1 (true)

Referencias const

Una referencia const es un alias de solo lectura. Resulta útil para pasar objetos grandes sin copiarlos.

void print(const std::string& s) {
    std::cout << s;  // can read, not modify
}

Vincular referencias const a temporales

Una referencia const prolonga la vida útil de un temporal hasta la duración de la propia referencia, lo que resulta práctico en expresiones.

const std::string& greeting = std::string("Hi");
std::cout << greeting;  // valid

Referencias como tipos de retorno

Las funciones pueden devolver referencias, lo que resulta útil para encadenar operaciones o proporcionar acceso directo a un miembro. ¡Tenga cuidado al devolver una referencia a una variable local!

int& at(std::vector<int>& v, size_t i) {
    return v[i];
}

at(v, 0) = 99;   // modifies v[0]

Nunca devuelva una referencia a una variable local

La variable local deja de existir cuando la función retorna; la referencia queda colgando. Esto constituye un comportamiento indefinido.

// BUG
int& bad() {
    int x = 10;
    return x;  // x dies here
}

Referencias en for basados en rangos

Los for basados en rangos usan referencias implícitamente. auto& obtiene una referencia; auto obtiene una copia.

Referencias en enlaces estructurados

Los enlaces estructurados de C++17 pueden vincularse por valor, por referencia o por referencia const.

std::pair<int, int> p = {1, 2};
auto [a, b] = p;            // copies
auto& [x, y] = p;           // references — modifying x changes p.first

Comprobación rápida

¿Por qué no se puede volver a vincular una referencia a otra variable más adelante?

Resumen

Una referencia es un alias en tiempo de compilación que debe inicializarse y no se puede volver a vincular. Se comporta como una variable normal, nunca es nula y nunca se reasigna. Use referencias const para obtener vistas de solo lectura.

Preguntas frecuentes

¿La lección «Por qué las referencias son alias de variables» es gratis?

Sí — el texto completo de «Por qué las referencias son alias de variables» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de C++ Academy, actualiza a CoddyKit PRO. El curso de C++ Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Por qué las referencias son alias de variables»?

Conozca las referencias como alias en tiempo de compilación que no pueden reasignarse ni ser nulos. Practicas C++ Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar C++ Academy?

No se requiere experiencia previa. C++ Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.

¿Cuánto tiempo toma la lección «Por qué las referencias son alias de variables»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de C++ Academy?

Sí. Cada lección de C++ Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Por qué las referencias son alias de variables
  2. Paso por valor frente a paso por referencia
  3. Referencias const y cuándo utilizarlas
  4. Duración de las referencias y referencias colgantes
← Volver a C++ Academy