Desreferenciar con ptr.*
Lea y escriba a través de un puntero.
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 5No 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; // errorDesreferenciar 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. 🎯
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
- Punteros a un solo elemento con *T
- Desreferenciar con ptr.*
- Punteros a varios elementos [*]T
- Punteros const y alineación