Dereferensi dengan ptr.*
Baca dan tulis melalui penunjuk.
Dereferensi dengan ptr.* adalah pelajaran Zig Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Zig Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Zig Academy mencakup 4 pelajaran total.
Bagian dari pelajaran ini belum diterjemahkan dan ditampilkan dalam bahasa Inggris.
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. 🎯
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Dereferensi dengan ptr.*” gratis?
Ya — teks lengkap “Dereferensi dengan ptr.*” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Zig Academy, upgrade ke CoddyKit PRO. Kursus Zig Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Dereferensi dengan ptr.*”?
Baca dan tulis melalui penunjuk. Kamu berlatih Zig Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Zig Academy?
Tidak diperlukan pengalaman sebelumnya. Zig Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.
Berapa lama pelajaran “Dereferensi dengan ptr.*” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Zig Academy ini?
Ya. Setiap pelajaran Zig Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Penunjuk Satu Item dengan *T
- Dereferensi dengan ptr.*
- Penunjuk Banyak Item [*]T
- Penunjuk Konstan dan Penyelarasan