Zig Academy · leksjon

Dereferering med ptr.*

Les og skriv gjennom en peker.

Leksjon 2 av 413 trinn

Dereferering med ptr.* er en gratis leksjon i Zig Academy på CoddyKit. Dette er leksjon 2 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Zig Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Zig Academy inneholder totalt 4 leksjoner.

Nå verdien

En peker inneholder en adresse, ikke en verdi. For å bruke verdien bak den må du først dereferere pekeren.

Syntaksen .*

Zig derefererer med en avsluttende .* på pekeren. Dermed betyr ptr.* verdien som ptr peker på akkurat nå.

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

Les via en peker

Hvis du skriver ptr.* i et uttrykk, leser du verdien pekeren viser til og får en vanlig kopi som kan brukes hvor som helst.

const doubled = p.* * 2;

Skriv via en peker

Plasser ptr.* til venstre i en tilordning for å skrive en ny verdi til den opprinnelige plasseringen.

p.* = 99;

Endringer er synlige

Fordi pekeren deler den opprinnelige lagringsplassen, oppdaterer skriving gjennom den også variabelen alle andre ser.

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

Ingen piloperator

Zig har ingen -> slik som C. Enten du leser eller skriver et felt, går du alltid gjennom den samme .*-derefereringen.

Dereferer, deretter felt

For en peker til en struct fungerer p.field direkte: Zig derefererer automatisk ved feltaksess, så du kan hoppe over .* der.

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

Eksplisitt er tillatt

Du kan fortsatt skrive p.*.field eksplisitt, men den kortere p.field er idiomatisk Zig og er enklere å lese.

Const blokkerer skriving

Hvis pekeren er en *const T, er ptr.* skrivebeskyttet. Forsøk på å tilordne gjennom den gir en kompileringsfeil.

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

Dereferering i matematikk

Du kan bruke ptr.* overalt der en verdi passer, også i aritmetikk. p.* + 1 betyr derfor ganske enkelt verdien pekeren viser til, pluss én.

const next = p.* + 1;

En vanlig feil

Hvis du glemmer .*, forsøker du å bruke adressen som et tall, noe som er en typefeil. Zig oppdager dette ved kompilering, ikke under kjøring.

Rask sjekk

Du har const p = &x og vil lagre et nytt tall i x gjennom p. Hva skriver du?

Oppsummering

Bruk ptr.* til å lese eller skrive verdien en peker sikter mot. Struct-felt derefereres automatisk, og pekere av typen *const T forblir skrivebeskyttet. 🎯

Gratis å komme i gang

Lær deg Zig med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
30
Leksjoner
120

Ofte stilte spørsmål

Er leksjonen «Dereferering med ptr.*» gratis?

Ja – hele teksten i «Dereferering med ptr.*» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Zig Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Zig Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «Dereferering med ptr.*»?

Les og skriv gjennom en peker. Du øver på Zig Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Zig Academy?

Ingen tidligere erfaring er nødvendig. Zig Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 2 av 4.

Hvor lang tid tar leksjonen «Dereferering med ptr.*»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Zig Academy-leksjonen?

Ja. Alle Zig Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Enkeltelementpekere med *T
  2. Dereferering med ptr.*
  3. Pekere til flere elementer [*]T
  4. Const-pekere og justering
← Tilbake til Zig Academy