Zig Academy · Les

Pointers naar meerdere items [*]T

Wijs naar een reeks elementen

Les 3 van 413 stappen

Pointers naar meerdere items [*]T is een gratis Zig Academy-les op CoddyKit. Dit is les 3 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Zig Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Zig Academy bevat in totaal 4 lessen.

Naar een reeks verwijzen

Soms verwijst een pointer niet naar één waarde, maar naar het begin van een reeks waarden die in het geheugen achter elkaar staan. 🧱

Het type [*]T

Een pointer naar meerdere elementen schrijf je als [*]T. De ster tussen de blokhaken betekent dat hij verwijst naar een onbekend aantal T-waarden achter elkaar.

var run: [*]u8 = undefined;

Geen lengte inbegrepen

In tegenstelling tot een slice bevat een pointer naar meerdere elementen geen lengte. Alleen jij weet hoeveel elementen veilig kunnen worden benaderd.

Indexeren zoals bij een array

Je kunt een pointer naar meerdere elementen met blokhaken indexeren. run[2] bereikt zo het derde element door vooruit te gaan in het geheugen.

const third = run[2];

Pointerrekenkunde

Als je iets optelt bij een pointer naar meerdere elementen, beweegt hij hele elementen vooruit. run + 1 verwijst dus één T verder, niet één byte.

const next = run + 1;

Eén versus meerdere

Een *T verwijst precies naar één waarde en kan niet worden geïndexeerd; een [*]T verwijst naar meerdere waarden en ondersteunt indexering en rekenkundige bewerkingen.

Waar ze vandaan komen

Pointers naar meerdere elementen komen vaak voor bij communicatie met C. C geeft dan een kale pointer naar een buffer door, terwijl de lengte apart wordt bijgehouden.

Geen grenscontroles

Omdat de lengte onbekend is, wordt indexering van een pointer naar meerdere elementen niet op grenzen gecontroleerd. Te ver lezen is ongedefinieerd gedrag.

Gebruik bij voorkeur slices

Als je de code beheert, is een slice []T veiliger omdat die de lengte bevat. Gebruik [*]T voornamelijk bij C-grenzen.

Van pointer naar slice

Zodra je het aantal kent, voeg je een lengte toe met ptr[0..n] om een pointer naar meerdere elementen om te zetten in een veilige slice met grenscontroles.

const view = run[0..n];

Er bestaan sentinelvarianten

Zig heeft ook door een sentinel beëindigde vormen, zoals [*:0]u8: een pointer waarvan de reeks eindigt bij een bekende waarde, zoals een nulbyte.

var cstr: [*:0]const u8 = "hi";

Korte controle

Vergelijk een slice []T met een pointer naar meerdere elementen [*]T. Wat ontbreekt er bij de pointer naar meerdere elementen?

Samenvatting

Een pointer naar meerdere elementen [*]T verwijst naar een reeks waarden, ondersteunt indexering en rekenkundige bewerkingen, heeft geen lengte en kan het best naar een slice worden omgezet wanneer dat mogelijk is. 🎯

Gratis beginnen

Leer Zig met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
30
Lessen
120

Veelgestelde vragen

Is de les “Pointers naar meerdere items [*]T” gratis?

Ja — de volledige tekst van “Pointers naar meerdere items [*]T” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Zig Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Zig Academy bevat in totaal 4 lessen.

Wat leer ik in “Pointers naar meerdere items [*]T”?

Wijs naar een reeks elementen Je oefent met Zig Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Zig Academy te beginnen?

Ervaring vooraf is niet nodig. Zig Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.

Hoe lang duurt de les “Pointers naar meerdere items [*]T”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Zig Academy?

Ja. Elke les over Zig Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Pointers naar één item met *T
  2. Derefereren met ptr.*
  3. Pointers naar meerdere items [*]T
  4. Const-pointers en uitlijning
← Terug naar Zig Academy