Rozdział 17 Wskaźniki Zobacz w Wikipedii: Zmienna wskaźnikowa Zmienne w komputerze sÄ
przechowywane w pamiÄci. To wie każdy programista, a dobry programista potraï¬ kontrolowaÄ zachowanie komputera w przydzielaniu i obsÅugi pamiÄci dla zmiennych. W tym celu pomocne sÄ
wskaźniki . Co to jest wskaźnik? 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. Rysunek 17.1: Wskaźnik a wska- zujÄ
cy na zmiennÄ
b . Zauważmy, że b przechowuje liczbÄ, podczas gdy a przechowuje adres b w pa- miÄci (1462) 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ÄÄ kom- putera jako bibliotekÄ a zmienne jako ksiÄ
żki. Za- miast braÄ ksiÄ
żkÄ z póÅki samemu (analogicznie do korzystania wprost ze zwykÅych zmiennych) może- my podaÄ bibliotekarzowi wypisany rewers z nume- rem katalogowym ksiÄ
żki a on znajdzie jÄ
za nas. Analogia ta nie jest doskonaÅa, ale pozwala wyobra- ziÄ sobie niektóre cechy wskaźników: kilka rewersów może dotyczyÄ tej samej ksiÄ
żki, numer w rewer- sie możemy skreÅliÄ i użyÄ go do zamówienia innej ksiÄ
żki, jeÅli wpiszemy nieprawidÅowy numer kata- logowy to możemy dostaÄ nie tÄ
ksiÄ
żkÄ, którÄ
chce- my, albo też nie dostaÄ nic. Warto też poznaÄ w tym miejscu deï¬nicjÄ adresu pamiÄci . Możemy powiedzieÄ, że adres to pewna liczba caÅkowita, jednoznacznie deï¬niujÄ
ca poÅożenie pewnego obiektu 111
(…)
…)
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
111
…
... zobacz całą notatkę
Komentarze użytkowników (0)