[*]T ile Çok Ögeli İşaretçiler
Bir dizi öğenin adresini gösterin.
[*]T ile Çok Ögeli İşaretçiler, CoddyKit'te ücretsiz bir Zig Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Zig Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Zig Academy kursu toplamda 4 dersten oluşur.
Bu dersin bazı bölümleri henüz çevrilmemiş olup İngilizce olarak gösterilmektedir.
Pointing at a Run
Sometimes a pointer addresses not one value but the start of a sequence of values laid out in memory. 🧱
The [*]T Type
A many-item pointer is written [*]T. The star inside the brackets means it points at an unknown number of T values in a row.
var run: [*]u8 = undefined;No Length Attached
Unlike a slice, a many-item pointer carries no length. You alone must know how many elements are safe to touch.
Index Like an Array
You can index a many-item pointer with brackets, so run[2] reaches the third element by stepping forward in memory.
const third = run[2];Pointer Arithmetic
Adding to a many-item pointer moves it by whole elements, so run + 1 points one T further along, not one byte.
const next = run + 1;Single vs Many
A *T points at exactly one value and cannot be indexed; a [*]T points at many and supports indexing and arithmetic.
Where They Come From
Many-item pointers often appear when talking to C, which passes a bare pointer to a buffer with the length tracked separately.
No Bounds Checks
Because the length is unknown, indexing a many-item pointer is not bounds-checked. Reading too far is undefined behavior.
Prefer Slices
When you control the code, a slice []T is safer because it bundles the length. Reach for [*]T mainly at C boundaries.
From Pointer to Slice
Once you know the count, attach a length with ptr[0..n] to turn a many-item pointer into a safe, bounds-checked slice.
const view = run[0..n];Sentinel Variants Exist
Zig also has sentinel-terminated forms like [*:0]u8, a pointer whose run ends at a known value such as a zero byte.
var cstr: [*:0]const u8 = "hi";Quick Check
Compare a slice []T with a many-item pointer [*]T. What does the many-item pointer lack?
Recap
A many-item pointer [*]T addresses a run of values, supports indexing and arithmetic, has no length, and is best converted to a slice when possible. 🎯
Sıkça Sorulan Sorular
“[*]T ile Çok Ögeli İşaretçiler” dersi ücretsiz mi?
Evet — “[*]T ile Çok Ögeli İşaretçiler” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Zig Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Zig Academy kursu toplamda 4 dersten oluşur.
“[*]T ile Çok Ögeli İşaretçiler” dersinde ne öğreneceğim?
Bir dizi öğenin adresini gösterin. Zig Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
Zig Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te Zig Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.
“[*]T ile Çok Ögeli İşaretçiler” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu Zig Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her Zig Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- *T ile Tek Ögeli İşaretçiler
- ptr.* ile Başvuruyu Kaldırma
- [*]T ile Çok Ögeli İşaretçiler
- Sabit İşaretçiler ve Hizalama