Menu
Coddy logo textTech

Operador de desreferencia

Parte de la sección Lógica y Flujo del Journey de C++ de Coddy — lección 3 de 56.

Ahora que puedes obtener un pointer a una variable, necesitas aprender cómo acceder y modificar el valor en esa memory address. Aquí es donde el operador dereference (*) becomes esencial.El operador dereference * se utiliza para acceder al valor almacenado en la address de memoria a la que está pointing un pointer. Cuando colocas * antes de una variable pointer, este "sigue" la address y te da el valor real almacenado allí.Recuerda que el operador de dirección (&) se utiliza para obtener la dirección de memoria de una variable, mientras que el operador de desreferenciación (*) se utiliza para acceder al valor en esa dirección.
int number = 42;
int* ptr = &number;  // ptr almacena la dirección de number
int value = *ptr;    // value ahora contiene 42
También puedes usar el operador dereference para modificar la variable original a través del pointer. Cuando asignas un nuevo valor a *ptr, en realidad estás cambiando el valor almacenado en esa ubicación de memoria:
*ptr = 100;  // Cambia number a 100
// number es ahora 100, aunque lo modificamos a través de ptr
Este acceso indirecto es lo que hace que los punteros sean tan potentes: puedes leer y modificar variables desde cualquier lugar de tu programa siempre que tengas un pointer hacia ellas.
challenge icon

Desafío

Fácil

Crea un programa que demuestre el operador de desreferencia modificando el valor de una variable a través de un puntero.

Se proporcionará la siguiente entrada:

  • Un entero que representa el valor inicial para una variable
  • Un entero que representa el nuevo valor a asignar a través del puntero

Tu programa debe:

  1. Declarar una variable entera llamada temperature e inicializarla con el primer valor de entrada
  2. Crear un puntero llamado tempPtr que apunte a la variable temperature
  3. Imprimir el valor original desreferenciando el puntero
  4. Usar el operador de desreferencia para cambiar el valor de temperature al segundo valor de entrada a través del puntero
  5. Imprimir el nuevo valor desreferenciando el puntero de nuevo

Utiliza el siguiente formato de salida exacto:

Original value: [original value]
New value: [new value]

Pruébalo tú mismo

#include <iostream>
using namespace std;

int main() {
    // Leer valores de entrada
    int initialValue, newValue;
    cin >> initialValue;
    cin >> newValue;
    
    // TODO: Escribe tu código debajo
    // 1. Declara la variable temperature e inicialízala con initialValue
    // 2. Crea el puntero tempPtr apuntando a temperature
    // 3. Print original value using pointer dereference
    // 4. Cambia el valor de temperature a través del puntero usando newValue
    // 5. Imprime el nuevo valor usando la desreferencia del puntero
    
    return 0;
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Lógica y Flujo