İsteğe Bağlı İşaretçiler ve ?*T
İşaretçileri isteğe bağlılıkla birleştirin.
İsteğe Bağlı İşaretçiler ve ?*T, 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.
Pointers Can Be Optional Too
A pointer normally must always aim at a valid value. Make it optional and it gains a legitimate way to mean nothing yet.
The ?*T Shape
The type ?*T reads as: an optional pointer to a T. It either points at a real value or holds null.
var node: ?*Node = null;A Safe Null Pointer
This is Zig answer to C null pointers. The pointer can be absent, but the optional forces you to check before dereferencing.
Unwrap Before You Follow
You cannot dereference a ?*T directly. First unwrap it with if or orelse to get the plain pointer underneath.
if (node) |p| {
use(p.*);
}Capture Gives a Real Pointer
Inside the if capture the name is a plain *Node, ready to dereference with .* like any non-optional pointer.
if (head) |p| {
const value = p.*;
}Great for Linked Structures
Optional pointers shine in linked lists and trees, where a next or child field is null at the end of the chain.
const Node = struct { next: ?*Node };Null Marks the End
When you walk a list, a next field of null cleanly signals that you have reached the final node and should stop.
Zig Packs the Tag Away
For pointers, Zig stores the null state in the pointer value itself, so a ?*T takes no extra space over a plain pointer.
Const Optional Pointers
You can combine read-only and optional: ?*const T is an optional pointer through which you may read but never write.
var view: ?*const u8 = null;Still No Surprise Crashes
Because the type says it might be null, the compiler will not let you forget the check, unlike a raw C pointer dereference.
Walking a Chain
A while loop that captures each optional next pointer is the idiomatic way to traverse a list until null appears.
while (cur) |n| {
cur = n.next;
}Quick Check
What does the type ?*Node describe?
Recap
You learned ?*T: a safe, optional pointer. Unwrap it before dereferencing, and let null mark the end of linked structures. 🔗
Sıkça Sorulan Sorular
“İsteğe Bağlı İşaretçiler ve ?*T” dersi ücretsiz mi?
Evet — “İsteğe Bağlı İşaretçiler ve ?*T” 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.
“İsteğe Bağlı İşaretçiler ve ?*T” dersinde ne öğreneceğim?
İşaretçileri isteğe bağlılıkla birleştirin. 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.
“İsteğe Bağlı İşaretçiler ve ?*T” 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
- İsteğe Bağlı Türleri Bildirme
- if ve orelse ile Güvenli Açma
- İsteğe Bağlı İşaretçiler ve ?*T
- null ve undefined Karşılaştırması