38992

38992



115


ARYTMETYKA WSKAŹNIKÓW

Podsumowując, różne wskaźniki to różne typy i nie należy beztrosko rzutować wyrażeń pomiędzy różnymi typami wskaźnikowymi, bo grozi to nieprzewidywalnymi błędami.

Do czego służy typ void*?

Czasami zdarza się, że nic wiemy, na jaki typ wskazuje dany wskaźnik. W takich przypadkach stosujemy typ void*. Sam wid nie znaczy nic, natomiast void* oznacza •“wskaźnik na obiekt w pamięci niewiadomego typu”. Taki wskaźnik możemy potem odnieść do konkretnego typu danych (w języku C++ wymagane jest do tego rzutowania). Na przykład, funkcja inalloc zwraca właśnie wskaźnik za pomocą void*.

Arytmetyka wskaźników

W języku C do wskaźników można dodawać lub odejmować liczby całkowite. Istotne jest jednak, że dodanie do wskaźnika liczby dwa nie spowoduje przesunięcia się w pamięci komputera o dwa ł>ajty. Tak naprawdę przesuniemy się o 2*rozmiar zmiennej. Jest to bardzo ważna informacja! Początkujący programiści popełniają często dużo błędów, związanych z nieprawidłową arytmetyką wskaźników.

Zobaczmy na przykład:

int *ptr;

int a[] = {1, 2, 3, 5, 7>; ptr ■ &a[0];

ptr


1

1121315| 7

Rysunek 17.2: Wskaźnik wskazuje na pierwszą komórkę pamięci

Otrzymujemy następującą syt nację:

Gdy wykonamy

ptr +■ 2;

1

2

3

5

7


ptr

Rysunek 17.3: Przesunięcie wskaźnika na kolejne komórki

wskaźnik ustawi się na trzecim elemencie tablicy.



Wyszukiwarka

Podobne podstrony:
Image72 (5) Rys. 1 Schemat ideowy Jak wiadomo, wskaźnik przestępczości w naszym kraju nie należy do
• Aktualne, np. informacja, że firma Z - to bankrut i przeto nie należy udzielać jej Kredytu pr
• Aktualne, np. informacja, że firma Z - to bankrut i przeto nie należy udzielać jej Kredytu pr
Podsumowanie 241 2.    Inny wskaźnik to rytm serca, który zwykle wzrasta, gdy człowie
Poznaj C++ w$ godziny0258 250 Godzina 17 To jest właśnie główna zaleta polimorfizmu C++. Możesz np.
skanuj0421 I różne typy portfeli. Modele portfeli projektów badawczych mają wiele cech wspólnych z m
skanuj0421 I różne typy portfeli. Modele portfeli projektów badawczych mają wiele cech wspólnych z m
Różne typy aplikacji wymagają różnorakiego podejścia do testowania. Bodajże najtrudniejszą w testowa
phoca thumb l slajd17 (18) Różne typy bodźców wpływają na otwieranie i zamykanie kanałów jonowychKan
ScanImage005 (9) Różne typy ścian- ściany niewentyłowane wielowarstwowe. Izolacja termiczna od zewną
IMG&73 rysunku IV.63 przedstawiono różne typy aparatów gębowych owadów. r0 * Przeprowadzono następuj
kscan47 Rys. 14.1. Różne typy naczynek konduktome-trycznych Rys. 14.2. Schemat układu do mierzenia

więcej podobnych podstron