0Pricing
Zig Academy · Lekcja

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 5

Brak 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; // error

Wył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

  1. Wskaźniki na pojedynczy element za pomocą *T
  2. Wyłuskiwanie za pomocą ptr.*
  3. Wskaźniki na wiele elementów [*]T
  4. Wskaźniki const i wyrównanie
← Powrót do Zig Academy