Dereferenziare con ptr.*
Leggere e scrivere attraverso un puntatore
Dereferenziare con ptr.* è una lezione Zig Academy gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Zig Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Zig Academy include 4 lezioni in totale.
Raggiungere il valore
Un puntatore contiene un indirizzo, non un valore. Per usare il valore sottostante, deve prima dereferenziare il puntatore.
La sintassi .*
Zig dereferenzia con .* alla fine del puntatore. Quindi ptr.* indica il valore a cui ptr punta attualmente.
var x: i32 = 7;
const p = &x;
const v = p.*;Leggere tramite un puntatore
Scrivere ptr.* in un'espressione legge il valore puntato, fornendo una normale copia utilizzabile ovunque.
const doubled = p.* * 2;Scrivere tramite un puntatore
Metta ptr.* a sinistra di un'assegnazione per scrivere un nuovo valore nella posizione originale.
p.* = 99;Le modifiche sono visibili
Poiché il puntatore condivide la memoria originale, la scrittura tramite esso aggiorna anche la variabile visualizzata da tutti gli altri.
var x: i32 = 1;
const p = &x;
p.* = 5;
// x is now 5Nessun operatore freccia
Zig non ha -> come C. Sia per leggere sia per scrivere un campo, si usa sempre la stessa dereferenziazione .*.
Dereferenziare e poi accedere al campo
Per un puntatore a una struct, p.field funziona direttamente: Zig esegue la dereferenziazione automatica per l'accesso al campo, quindi lì può omettere .*.
const p = &point;
const y = p.y;La forma esplicita è consentita
Può comunque scrivere p.*.field, ma la forma più breve p.field è quella idiomatica in Zig e risulta più leggibile.
Const impedisce le scritture
Se il puntatore è un *const T, ptr.* è di sola lettura; tentare di assegnare tramite esso produce un errore di compilazione.
const x: i32 = 3;
const p = &x;
// p.* = 4; // errorDereferenziazione nei calcoli
Può usare ptr.* ovunque sia ammesso un valore, anche nelle operazioni aritmetiche: p.* + 1 significa semplicemente il valore puntato da p più uno.
const next = p.* + 1;Un errore comune
Dimenticare .* tenta di usare l'indirizzo come numero, causando un errore di tipo. Zig lo rileva in fase di compilazione, non durante l'esecuzione.
Verifica rapida
Ha const p = &x e vuole memorizzare un nuovo numero in x tramite p. Che cosa scrive?
Riepilogo
Usi ptr.* per leggere o scrivere il valore indirizzato da un puntatore; i campi delle struct vengono dereferenziati automaticamente e i puntatori *const T restano di sola lettura. 🎯
Impara Zig con un tutor IA — gratis
Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.
- Corsi
- 30
- Lezioni
- 120
Domande Frequenti
La lezione «Dereferenziare con ptr.*» è gratuita?
Sì — il testo completo di «Dereferenziare con ptr.*» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Zig Academy, passa a CoddyKit PRO. Il corso Zig Academy include 4 lezioni in totale.
Cosa imparerò in «Dereferenziare con ptr.*»?
Leggere e scrivere attraverso un puntatore Eserciti Zig Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Zig Academy?
Non è richiesta alcuna esperienza precedente. Zig Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.
Quanto tempo richiede la lezione «Dereferenziare con ptr.*»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Zig Academy?
Sì. Ogni lezione Zig Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Puntatori a un singolo elemento con *T
- Dereferenziare con ptr.*
- Puntatori a più elementi [*]T
- Puntatori const e allineamento