Dereferering med ptr.*
Les og skriv gjennom en peker.
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 5Ingen 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; // errorDereferering 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. 🎯
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
- Enkeltelementpekere med *T
- Dereferering med ptr.*
- Pekere til flere elementer [*]T
- Const-pekere og justering