Menu
Coddy logo textTech

El operador de dirección (&)

Parte de la sección Logic & Flow del Journey de C de Coddy — lección 3 de 63.

Ahora que puedes declarar punteros, necesitas aprender cómo almacenar realmente una dirección de memoria en ellos. El operador de dirección (&) es la clave para obtener la dirección de memoria de cualquier variable.

Cuando colocas el operador & delante del nombre de una variable, este devuelve la dirección de memoria donde se almacena esa variable. Piénsalo como si preguntaras "¿Dónde vive esta variable en la memoria?"

int age = 25;
int *ptr;
ptr = &age;    // Almacena la dirección de 'age' en 'ptr'

En este ejemplo, &age nos da la dirección de memoria de la variable age. Luego asignamos esta dirección a nuestro puntero ptr. Ahora ptr "apunta a" la variable age.

El operador de dirección es esencial porque es el puente entre las variables regulares y los punteros. Sin él, no podrías decirle a un puntero a qué variable apuntar. Recuerda que los tipos de datos deben coincidir; solo puedes asignar la dirección de un entero a un puntero declarado para enteros.

challenge icon

Desafío

Fácil

Escribe un programa en C que demuestre el uso del operador de dirección para conectar variables con punteros. Tu programa debe:

  1. Declarar una variable entera llamada number e inicializarla con el valor 42
  2. Declarar una variable de tipo carácter llamada letter e inicializarla con el valor 'X'
  3. Declarar un puntero a un entero llamado num_ptr
  4. Declarar un puntero a un carácter llamado char_ptr
  5. Usar el operador de dirección para asignar la dirección de number a num_ptr
  6. Usar el operador de dirección para asignar la dirección de letter a char_ptr
  7. Imprimir las direcciones almacenadas en ambos punteros usando printf con el especificador de formato %p

Tu salida debe mostrar las direcciones de los punteros en el siguiente formato:

Address of number: [address]
Address of letter: [address]

Las direcciones de memoria reales variarán entre las ejecuciones del programa, pero el formato y las etiquetas deben coincidir exactamente como se muestra arriba.

Hoja de referencia

El operador de dirección (&) devuelve la dirección de memoria de una variable:

int age = 25;
int *ptr;
ptr = &age;    // Almacena la dirección de 'age' en 'ptr'

El operador de dirección es esencial para conectar variables con punteros. Los tipos de datos deben coincidir: solo puedes asignar la dirección de un entero a un puntero declarado para enteros.

Usa el especificador de formato %p para imprimir direcciones de punteros con printf.

Pruébalo tú mismo

#include <stdio.h>

int main() {
    // TODO: Escribe tu código aquí
    // 1. Declarar e inicializar las variables
    // 2. Declarar los punteros
    // 3. Usar el operador de dirección para asignar direcciones
    // 4. Imprimir las direcciones usando el formato mostrado
    
    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 Logic & Flow