ďťż

15 (11)

Lemur zaprasza

    



 


    




    l Nowości l
    l Kurs języka C l
    l Pliki l
    l Linki l
    l e-mail l





wizyt od 99.09.01



Strona domowa Bogdana Modzelewskiego




Najlepiej przeglądać   w rozdzielczości 1024x768









15. Wskaźniki






Z ogólnymi informacjami dotyczącymi wskaźników zapoznamy się, podobnie jak to było w przypadku tablic, przy pomocy przykładowego
rysunku.






Załóżmy, że zadeklarowaliśmy sobie w programie zmienną typu int o nazwie x i od razu przypisaliśmy jej
wartość 124. Czyli wyglądałoby to następująco:

int x=124;




Załóżmy teraz, że kompilator umieścił naszą zmienną w pamięci pod adresem 1000. Czyli wyglądałoby to tak jak na rysunku przedstawionym
powyżej. Spróbuj teraz wczuć się w rolę kompilatora w przypadku, gdy w swoim programie każdesz mu wykonać następujące polecenie:

i = x;




Czyli do jakiejś zmiennej o nazwie i (która jest tu nieistotna) przypisujesz wartość zmiennej
x. Pomyśl co musi zrobić kompilator, żeby wykonać to polecenie. Interesuje nas skąd kompilator wie jaką
wartość ma nasza zmienna x? Odpowiedź brzmi: nie wie. Jednak wie, w którym miejscu pamięci znajduje
się zmienna. Sprawdza więc jaki jest jej adres - w naszym przypadku jest to adres 1000. Następnie odczytuje komórkę pamięci znajdującą się
pod tym adresem i voila ! Otrzymuje w efekcie liczbę 124, która się tam znajduje. Zastanawiasz się teraz zapewne po co Ci to wszystko mówię ?
Otóż podobnie, z naszego (czyli programisty) punktu widzenia, działają wskaźniki. Załóżmy, że oprócz naszej zmiennej
x mamy jeszcze jedną zmienną (której deklaracji na razie nie podam), która ma wartość 1000. W naszym
przypadku jest ona umieszczona pod adresem 1016. Przypatrz się teraz uważnie rysunkowi. Czy nic nie wydaje Ci się podejrzane ? Nasza
druga zmienna zawiera wartość, która jest równa adresowi zmiennej x! Tą drugą zmienną nazywamy
wskaźnikiem i w przypadku, gdy chcemy odczytać zawartość komórki pamięci o adresie, który jest zawarty w tej zmiennej to mówimy
kompilatorowi (oczywiście przy pomocy odpowiedniej składni): "Słuchaj, podaj mi zawartość komórki pamięci, której adres jest zawarty w tej
oto zmiennej (i tu ją podajemy)". Kompilator oczywiście stosuje się do naszego polecenia i w efekcie mamy to o co nam chodziło.

To by było na tyle jeśli chodzi o wyjaśnienie pojęcia wskaźnika. W następnych podpunktach zostaną pokazane na podstawie przykładowych
programów sposoby ich deklaracji i wykorzystania. Mam prośbę, żebyś ten punkt czytał szczególnie uważnie, gdyż jest to temat, który po
pierwsze jest trudny, a po drugie bardzo ważny. Praktycznie nie ma żadnego poważniejszego programu, który nie operowałby na wskaźnikach.


I jeszcze jedna uwaga na koniec tego wstępu do wskaźników. Nie bierz, proszę, zbyt dosłownie sposobu odczytu watości zmiennej przez
kompilator. Opisałem sposób, w jaki robiłby to gdyby był człowiekiem. Kompilator człowiekiem jednak nie jest i robi to w rzeczywistości trochę
inaczej. Z Twojego punktu widzenia nie jest jednak ważne jak, ważne jest to, żeby zrobił to dobrze. Zastosowałem taką formę opisu w takim
celu, żebyś mógł łatwiej zrozumieć istotę wskaźników. Mam nadzieję, że dzięki temu uda mi się wyjaśnić ten trudny dla początkującego temat
w sposób przystępny.





[ | | ]



 
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • teen-mushing.xlx.pl
  • Wątki
    Powered by wordpress | Theme: simpletex | © Lemur zaprasza