Wyłuskiwanie za pomocą ptr.*
Odczytuj i zapisuj dane przez wskaźnik.
Wyłuskiwanie za pomocą ptr.* to bezpłatna lekcja Zig Academy na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Zig Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Zig Academy zawiera 4 lekcji w sumie.
Dostęp do wartości
Wskaźnik przechowuje adres, a nie wartość. Aby użyć wskazywanej wartości, trzeba najpierw wyłuskać wskaźnik.
Składnia .*
Zig wyłuskuje wskaźnik za pomocą końcowego .*. Zatem ptr.* oznacza wartość, na którą aktualnie wskazuje ptr.
var x: i32 = 7;
const p = &x;
const v = p.*;Odczyt przez wskaźnik
Zapis ptr.* w wyrażeniu odczytuje wskazywaną wartość i daje zwykłą kopię, której można użyć w dowolnym miejscu.
const doubled = p.* * 2;Zapis przez wskaźnik
Umieszczenie ptr.* po lewej stronie przypisania pozwala zapisać nową wartość w pierwotnym miejscu.
p.* = 99;Zmiany są widoczne
Ponieważ wskaźnik współdzieli pierwotne miejsce przechowywania, zapis za jego pośrednictwem aktualizuje również zmienną widoczną dla wszystkich pozostałych elementów.
var x: i32 = 1;
const p = &x;
p.* = 5;
// x is now 5Brak operatora strzałki
Zig nie ma operatora -> znanego z C. Niezależnie od tego, czy odczytuje Pan/Pani pole, czy je zapisuje, zawsze używa tego samego wyłuskania .*.
Wyłuskanie przed polem
W przypadku wskaźnika do struktury zapis p.field działa bezpośrednio: Zig automatycznie wyłuskuje wskaźnik przy dostępie do pola, więc nie trzeba używać tam .*.
const p = &point;
const y = p.y;Jawny zapis jest dozwolony
Nadal można zapisać p.*.field, ale krótsza forma p.field jest idiomatyczna w Zig i czyta się ją przejrzyściej.
Const blokuje zapis
Jeśli wskaźnik ma typ *const T, ptr.* jest tylko do odczytu; próba przypisania za jego pośrednictwem powoduje błąd kompilacji.
const x: i32 = 3;
const p = &x;
// p.* = 4; // errorWyłuskanie w działaniach matematycznych
ptr.* można użyć wszędzie tam, gdzie pasuje wartość, także w działaniach arytmetycznych, więc p.* + 1 oznacza po prostu wskazywaną wartość powiększoną o jeden.
const next = p.* + 1;Częsty błąd
Pominięcie .* powoduje próbę użycia adresu jako liczby, co jest błędem typu. Zig wykrywa go podczas kompilacji, a nie w czasie działania.
Szybkie sprawdzenie
Ma Pan/Pani const p = &x i chce zapisać nową liczbę do x za pośrednictwem p. Co należy zapisać?
Podsumowanie
Używaj ptr.*, aby odczytywać lub zapisywać wartość wskazywaną przez wskaźnik; pola struktur są wyłuskiwane automatycznie, a wskaźniki *const T pozostają tylko do odczytu. 🎯
Często zadawane pytania
Czy lekcja „Wyłuskiwanie za pomocą ptr.*” jest bezpłatna?
Tak — pełny tekst „Wyłuskiwanie za pomocą ptr.*” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Zig Academy, przejdź na CoddyKit PRO. Kurs Zig Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Wyłuskiwanie za pomocą ptr.*”?
Odczytuj i zapisuj dane przez wskaźnik. Ćwiczysz Zig Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Zig Academy?
Nie wymagamy żadnego doświadczenia. Zig Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.
Ile czasu zajmuje lekcja „Wyłuskiwanie za pomocą ptr.*”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Zig Academy?
Tak. Każda lekcja Zig Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Wskaźniki na pojedynczy element za pomocą *T
- Wyłuskiwanie za pomocą ptr.*
- Wskaźniki na wiele elementów [*]T
- Wskaźniki const i wyrównanie