Menu
CoddyTech

El operador de dirección (&)

Parte de la sección Lógica y Flujo del Journey de C de Coddy. Lección 3 de 63.

Ahora que puedes declarar punteros, necesitas aprender a 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, devuelve la dirección de memoria donde se almacena esa variable. Piensa en ello como preguntar: «¿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 proporciona la dirección de memoria de la variable age. Después 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 normales y los punteros. Sin él, no podrías indicar a un puntero a qué variable debe 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 ejecuciones del programa, pero el formato y las etiquetas deben coincidir exactamente con lo mostrado arriba. [address] es un marcador de posición para la dirección impresa: no imprimas los corchetes.

FORMATO DE SALIDA REQUERIDO: [Tu contenido traducido aquí]

Pruébalo tú mismo

#include <stdio.h>

int main() {
    // TODO: Escribe tu código aquí
    // 1. Declara e inicializa las variables
    // 2. Declara los punteros
    // 3. Usa el operador de dirección para asignar las direcciones
    // 4. Imprime 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 Lógica y Flujo

Practica por tu cuenta: Compilador de C online