Zig Academy · Lezione

Dereferenziare con ptr.*

Leggere e scrivere attraverso un puntatore

Lezione 2 di 413 passaggi

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 5

Nessun 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; // error

Dereferenziazione 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. 🎯

Gratis per iniziare

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

  1. Puntatori a un singolo elemento con *T
  2. Dereferenziare con ptr.*
  3. Puntatori a più elementi [*]T
  4. Puntatori const e allineamento
← Torna a Zig Academy