Rozdział 17
Zobacz w Wikipedii
Zinieimc w komputerze są przechowywane w pamięci. To wie każdy programista, a Zmienna wskaźnikowa dobry programista potrafi kontrolować zachowanie komputera w przydzielaniu i obsługi pamięci dla zmiennych. W tym celu pomocne są wskaźniki.
Dla ułatwienia przyjęto poniżej, że bajt ma 8 bitów, typ int składa się z dwóch bajtów (16 bitów), typ long składa się z czterech bajtów (32 bitów) oraz liczby zapisane są w formacie big endian (tzn. bardziej znaczący bajt na początku), co niekoniecznie musi być prawdą na Twoim komputerze.
Wskaźnik (ang. pointer) to specjalny rodzaj zmiennej, w której zapisany jest adres w pamięci komputera, tzn. wskaźnik wskazuje miejsce, gdzie zapisana jest jakaś informacja. Oczywiście nic nie stoi na przeszkodzie aby wskazywaną daną był inny wskaźnik do kolejnego miejsca w pamięci.
Obrazowo możemy wyobrazić sobie pamięć komputera jako bibliotekę a zmienne jako książki. Zamiast brać książkę z półki samemu (analogicznie do korzystania wprost ze zwykłych zmiennych) możemy podać bibliotekarzowi wypisany rewers z numerem katalogowym książki a on znajdzie ją za nas.
Analogia ta nie jest doskonała, ale pozwala wyobrazić sobie niektóre cechy wskaźników: kilka rewersów Rysunek 17.1: W skaznik a wska-możc dotyczyć tej samej książki, numer w rewer- zuj^c>' na zmienną b. Zauważmy, sie możemy skreślić i użyć go do zamówienia innej “ b przechowuje liczbę, podczas książki, jeśli wpiszemy nieprawidłowy numer kata- K^y a przechowuje adres b w pa-logowy to możemy dostać nic tą książkę, którą chce- n“?c' (1462) my, albo też nie dostać nic.
Warto też poznać w tym miejscu definicję adresu pamięci. Możemy powiedzieć, że adres to pewna liczba całkowita, jednoznacznie definiująca położenie pewnego obiektu
•/
1464
14G3
1462
1461
1460
1462
876
875
874
873
872
111