Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
1
Wskaźniki
2
Zmienna wskaźnikowa (wskaźnik)
zmienna wskazująca na zmienną danego typu, opisująca położenie innej zmiennej w pamięci, przechowuje adres innej zmiennej Zastosowanie zmiennej wskaźnikowej: dostęp do specjalnych komórek pamięci dynamiczna alokacja pamięci przekazywanie argumentów do funkcji przez wskaźniki praca z tablicami
3
Deklaracja zmiennych wskaźnikowych: Pascal C++ nazwa : ^typ;
typ * nazwa; Przykład: wskaznik:^integer; char * wsk;
4
@ & Operator uzyskania adresu (referencji): Pascal C++ var
Przykład: var wsk:^integer; a:integer; begin wsk end. char * wsk; char b; wsk = &b;
5
^ * Operator wyłuskania (dereferencji):
operator uzyskania zawartości obszaru identyfikowanego przez adres zawarty w zmiennej wskaźnikowej Pascal C++ ^ * Przykład: var wsk:^integer; a:integer; begin a := 10; wsk writeln(a^); end. char * wsk; char b; b = ‘a’; wsk = &b; cout<<*wsk;
6
Dynamiczna alokacja pamięci:
Zmienne dynamiczne mają dość ważną cechę: w zależności od potrzeb mogą być tworzone i niszczone w czasie trwania programu . Pozwala to na zaoszczędzenie pamięci, w porównaniu ze zmiennymi statycznymi.
7
Dynamiczna alokacja pamięci w języku Pascal:
Dynamiczny przydział pamięci odbywa się przy użyciu następujących procedur: Przydzielenie pamięci na zmienną zadanego typu: New( zmienna_wskaźnikowa ) ; b) Zwolnienie pamięci przydzielonej za pomocą procedury New Dispose( zmienna_wskaźnikowa ) ; c) Przydzielenie pamięci na ciąg bajtów o zadanej długości GetMem( zm_wsk , ilość_bajtów ) ; d) Zwolnienie pamięci przydzielonej za pomocą procedury GetMem FreeMem( zm_wsk, ilość_bajtów );
8
Przykład: var wsk_1 : ^ real ; deklaracje zmiennych wskaźnikowych
begin New( wsk_1 ); przydzielanie pamięci wsk_1^ := 12.34; operacje na zmiennych dynamicznych Dispose( wsk_1 ); zwalnianie pamięci end .
9
Dynamiczna alokacja pamięci w języku C++:
Operatory new i delete Operator new tworzy obiekt, a operator delete usuwa obiekt z pamięci. Przykłady: char *wsk; wsk = new char; delete wsk; int *wsktab; wsktab = new int[10]; delete [] wsk_tab;
10
Przekazywanie argumentów do funkcji przez wskaźniki: język Pascal:
type: wsk=^integer; var c,d:integer; function max(a,b:wsk):integer; … język C++ int max (int *a, int *b); int c,d; cout<<max(&c,&d);
11
Koniec
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.