Dereferenzieren mit ptr.*
Lesen und schreiben Sie über einen Zeiger.
Dereferenzieren mit ptr.* ist eine kostenlose Zig Academy-Lektion auf CoddyKit. Dies ist Lektion 2 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Zig Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Zig Academy-Kurs umfasst insgesamt 4 Lektionen.
Teile dieser Lektion wurden noch nicht übersetzt und werden auf Englisch angezeigt.
Reaching the Value
A pointer holds an address, not a value. To use the value behind it you must dereference the pointer first.
The .* Syntax
Zig dereferences with a trailing .* on the pointer. So ptr.* means the value that ptr currently points to.
var x: i32 = 7;
const p = &x;
const v = p.*;Read Through a Pointer
Writing ptr.* in an expression reads the pointed-to value, giving you a normal copy you can use anywhere.
const doubled = p.* * 2;Write Through a Pointer
Put ptr.* on the left of an assignment to write a new value into the original location.
p.* = 99;Changes Are Visible
Because the pointer shares the original storage, writing through it updates the variable everyone else sees too.
var x: i32 = 1;
const p = &x;
p.* = 5;
// x is now 5No Arrow Operator
Zig has no -> like C. Whether you read or write a field, you always go through the same .* dereference.
Dereference Then Field
For a pointer to a struct, p.field works directly: Zig auto-dereferences for field access, so you skip the .* there.
const p = &point;
const y = p.y;Explicit Is Allowed
You may still spell it out as p.*.field, but the shorter p.field is idiomatic Zig and reads more cleanly.
Const Blocks Writes
If the pointer is a *const T, then ptr.* is read-only; trying to assign through it is a compile error.
const x: i32 = 3;
const p = &x;
// p.* = 4; // errorDereference in Math
You can use ptr.* anywhere a value fits, including arithmetic, so p.* + 1 just means the pointee plus one.
const next = p.* + 1;A Common Mistake
Forgetting .* tries to use the address as a number, which is a type error. Zig catches it at compile time, not at runtime.
Quick Check
You have const p = &x and want to store a new number into x through p. What do you write?
Recap
Use ptr.* to read or write the value a pointer targets, struct fields auto-dereference, and *const T pointers stay read-only. 🎯
Häufig gestellte Fragen
Ist die Lektion „Dereferenzieren mit ptr.*“ kostenlos?
Ja — der vollständige Text von „Dereferenzieren mit ptr.*“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Zig Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Zig Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Dereferenzieren mit ptr.*“?
Lesen und schreiben Sie über einen Zeiger. Du übst Zig Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Zig Academy zu starten?
Keine Vorkenntnisse erforderlich. Zig Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 2 von 4.
Wie lange dauert die Lektion „Dereferenzieren mit ptr.*“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Zig Academy-Lektion Code schreiben und ausführen?
Ja. Jede Zig Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Zeiger auf einzelne Elemente mit *T
- Dereferenzieren mit ptr.*
- Zeiger auf mehrere Elemente [*]T
- Konstante Zeiger und Ausrichtung