AD

¿Ya dominas lo básico? Un curso estructurado de C es la vía rápida para dar el salto.

Ver cursos de C en Udemy

Enlace de afiliado. No te cuesta nada extra.

🔧Lecciones de C
Lección 16 / 68

Punteros, lo básico

En esta lección conocerás lo que hace de C un lenguaje distinto: manipular direcciones de memoria directamente.

Un puntero guarda la dirección de una variable, no su valor. &num es «la dirección de num» y *p es «el valor que hay en la dirección p». El asterisco significa cosas distintas al declarar (int *p) y al usar (*p), lo que confunde bastante al principio.

El código de ejemplo muestra el valor de una variable, el valor al que apunta el puntero, y cómo cambia el original al escribir a través del puntero.

Lo que hay que entender es para qué existen. En C, los argumentos se pasan siempre por copia, así que una función no puede modificar una variable de quien la llamó… salvo que reciba su dirección. Los punteros son lo que permite escribir funciones que devuelven varios resultados, recorrer arrays eficientemente y construir estructuras enlazadas.

Y el peligro: un puntero no inicializado apunta a una dirección cualquiera, y escribir a través de él corrompe memoria arbitraria. Un puntero a memoria ya liberada (dangling pointer) es igual de grave. Inicializa siempre a NULL y comprueba antes de usar.

📖 Código de referencia
✍️ Tu código
Escribe tu código y pulsa «Ejecutar»

🧪 Este sitio no puede compilar ni ejecutar C directamente, así que comprueba al instante si lo que escribiste coincide con el código de referencia (la corrección ocurre por completo en tu navegador; no se envía nada a ningún servidor).

🔗 El mismo tema en otros lenguajes

Mira cómo se escribe lo mismo en otro lenguaje.

Espacio publicitario (banner)
Espacio publicitario (en el artículo)