Zig Academy · Lección

Desreferenciar con ptr.*

Lea y escriba a través de un puntero.

Lección 2 de 413 pasos

Desreferenciar con ptr.* es una lección gratuita de Zig Academy en CoddyKit. Esta es la lección 2 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 Zig Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Zig Academy incluye 4 lecciones en total.

Acceder al valor

Un puntero contiene una dirección, no un valor. Para usar el valor al que apunta, primero debe desreferenciar el puntero.

La sintaxis .*

Zig desreferencia con un .* al final del puntero. Por tanto, ptr.* significa el valor al que apunta actualmente ptr.

var x: i32 = 7;
const p = &x;
const v = p.*;

Leer a través de un puntero

Escribir ptr.* en una expresión lee el valor apuntado y le proporciona una copia normal que puede usar en cualquier lugar.

const doubled = p.* * 2;

Escribir a través de un puntero

Coloque ptr.* a la izquierda de una asignación para escribir un valor nuevo en la ubicación original.

p.* = 99;

Los cambios son visibles

Como el puntero comparte el almacenamiento original, escribir a través de él actualiza también la variable que ven los demás.

var x: i32 = 1;
const p = &x;
p.* = 5;
// x is now 5

No hay operador de flecha

Zig no tiene -> como C. Tanto si lee como si escribe un campo, siempre pasa por la misma desreferencia .*.

Desreferenciar y después acceder al campo

Para un puntero a una estructura, p.field funciona directamente: Zig realiza una desreferencia automática al acceder al campo, por lo que allí puede omitir .*.

const p = &point;
const y = p.y;

También se permite hacerlo explícito

Aun así, puede escribirlo como p.*.field, pero la forma más breve, p.field, es la idiomática en Zig y resulta más clara.

Const impide las escrituras

Si el puntero es un *const T, ptr.* es de solo lectura; intentar asignar un valor a través de él produce un error de compilación.

const x: i32 = 3;
const p = &x;
// p.* = 4; // error

Desreferenciar en operaciones matemáticas

Puede usar ptr.* en cualquier lugar donde encaje un valor, incluso en operaciones aritméticas, por lo que p.* + 1 simplemente significa el valor apuntado más uno.

const next = p.* + 1;

Un error común

Olvidar .* intenta usar la dirección como un número, lo que constituye un error de tipos. Zig lo detecta en tiempo de compilación, no en tiempo de ejecución.

Comprobación rápida

Tiene const p = &x y quiere almacenar un número nuevo en x a través de p. ¿Qué debe escribir?

Resumen

Use ptr.* para leer o escribir el valor al que apunta un puntero; los campos de las estructuras se desreferencian automáticamente, y los punteros *const T permanecen en modo de solo lectura. 🎯

Gratis para empezar

Aprende Zig con un tutor de IA — gratis

Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.

Cursos
30
Lecciones
120

Preguntas frecuentes

¿La lección «Desreferenciar con ptr.*» es gratis?

Sí — el texto completo de «Desreferenciar con ptr.*» 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 Zig Academy, actualiza a CoddyKit PRO. El curso de Zig Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Desreferenciar con ptr.*»?

Lea y escriba a través de un puntero. Practicas Zig 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 Zig Academy?

No se requiere experiencia previa. Zig 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 2 de 4.

¿Cuánto tiempo toma la lección «Desreferenciar con ptr.*»?

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 Zig Academy?

Sí. Cada lección de Zig 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. Punteros a un solo elemento con *T
  2. Desreferenciar con ptr.*
  3. Punteros a varios elementos [*]T
  4. Punteros const y alineación
← Volver a Zig Academy