To tylko jedna z 11 stron tej notatki. Zaloguj się aby zobaczyć ten dokument.
Zobacz
całą notatkę
Informacje zawarte w pliku dotyczą takich kwestii jak: wskaźniki, korzystanie ze wskaźników, wskaźniki a podprogramy, zmienne dynamiczne, przydzielanie i zwalnianie pamięci, dynamiczne tablice.
Podstawy Programowania – semestr drugiWyk ał d wprowadzaj cy1.Wska niki
Dotychczas wszystkie zmienne, które tworzyli my w programach, przechowywały warto ci bezpo rednio. Innymi s o
ł wy, zmienna
jest komórk lub grup komórek (w zale no ci od jej typu), która przechowuje dane przetwarzane przez program. Pami
operacyjn komputera mo emy wyobrazi sobie jako tablic . Elementy tej tablicy s nazywane komórkami. Ka da komórka ma
wielko
jednego bajta. Indeksy tej tablicy s nazywane adresami. W przypadku tablic ka dy element ma swój unikatowy indeks.
Podobnie w pami ci, ka dej komórce przyporz dkowany jest jednoznaczny adres (co oznacza, e nie ma dwóch adresów o tym
samym typie). Wska niki s specjalnymi zmiennymi, które przechowuj nie dan , ale adres komórki pami ci, która t dan
1
zawiera. W j zyku Turbo Pascal najprostszym wska nikiem jest wska nik typu pointer . Zmienna tego typu ma wielko
4 bajtów
2
3
(adres w komputerach PC jest 32 bitowy ). Typ pointer nie okre la typu danej, na któr wskazuje wska nik tego typu . Ma to t
4
zalet , e mo na zmiennej tego typu przypisa zawarto
zmiennych wska nikowych innych typów , lub odwrotnie. Wad
wska nika tego typu jest niemo no
zinterpretowania warto ci tego, na co on wskazuje. Wska niki typu pointer deklarujemy w
sekcji var programu lub podprogramu według nast puj cego wzorca:nazwa_wska nika:pointer;
W praktyce cz
ciej korzysta si ze zmiennych wska nikowych, wskazuj cych na dane okre lonego typu. Typ takiej zmiennej
mo emy zdefiniowa w sekcji type programu lub podprogramu, według nast puj cego wzorca:nazwa_typu_wska nikowego=^nazwa_typu_danych;
Znak ^ oznacza, e definiujemy typ wska nikowy. Ma on równie inne znaczenie, pozwala „wydoby ” dane wskazywane przez
zmienn wska nikow , co b dzie pó niej zademonstrowane. Mo emy równie zadeklarowa zmienn wska nikow o
„anonimowym” typie wska nikowym, wed u
ł g nast puj cego wzorca:nazwa_wska nika:^nazwa_typu_danych;
Deklaracj takiego wska nika umieszczamy oczywi cie w sekcji var programu lub podprogramu. Oto przykłady rzeczywistych
definicji typów wska nikowych i deklaracji zmiennych wska nikowych:
Obie zmienne (x i y) mog wskazywa na dan o
type
wielko ci jednego bajta, ale one same maj rozmiar 4
pbyte = ^byte;
bajtów, który jest konieczny do przechowania adresu
(…)
…
zmienn , to parametr ten
b dzie przechowywał nie warto podstawionej zmiennej, ale jej adres. Jak wiemy nie musimy stosowa operatora ^, aby otrzyma
warto wskazywan przez ten parametr, a wi c jest on wygodniejszy w u yciu ni „zwykły” wska nik i dodatkowo, w przypadku
du ych struktur danych pozwala zaoszcz dzi pami
na stosie. Tego typu wska niki nazywane s w literaturze referencjami.
„Zwykłe” wska niki maj…
…, a kiedy usuni te z pami ci komputera decyduje programista. Mo e on równie
zajmowanej przez tak
zmienn . Zmienne dynamiczne pozwalaj
wi c na lepsz
gospodark
równie na tworzenie skomplikowanych struktur danych (tym zagadnieniem b dziemy si
mie
wpływ na ilo
pami ci
one
pami ci
komputera. Pozwalaj
zajmowa na przyszłych wykładach).
Zmienne dynamiczne tworzone s w obszarze pami ci komputera, który nazywa si stert…
…, a nie dan lub e wska nik ten wskazuje na
wa ne dane systemu operacyjnego (w przypadku systemu MS-DOS). Inicjalizacja wska ników jest wi c szczególnie wa n
czynno ci w programie.
3.
Wska niki a podprogramy
Z pewn
form
wska ników spotkali my si
ju
wcze niej. S
to parametry formalne podprogramów poprzedzone słowem
kluczowym var. Je li za taki parametr, w miejscu wywołania podprogramu podstawimy odpowiedni…
... zobacz całą notatkę
Komentarze użytkowników (0)