• Nie Znaleziono Wyników

Wskaźniki Wykład: 8

N/A
N/A
Protected

Academic year: 2021

Share "Wskaźniki Wykład: 8"

Copied!
27
0
0

Pełen tekst

(1)

1

dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Wykład: 8

Wskaźniki

Podstawy programowania

(2)

2

Wskaźniki

Podstawy programowania w C++

dr Artur Bartoszewski - Podstawy programowania sem. 1 - WYKŁAD

(3)

3

Pojęcie wskaźnika

Podstawy

dr Artur Bartoszewski - Podstawy programowania sem. 1 - WYKŁAD

Wskaźnik na zmienną danego typu to zmienna, która przechowuje adres zmiennej danego typu.

Zmienne są niczym innym jak tylko komórkami pamięci operacyjnej RAM. Zatem odwołując się do zmiennej poprzez jej nazwę odwołujemy się do przydzielonej jej pamięci.

Wartością wskaźnika jest natomiast adres pamięci RAM, gdzie

znajduje się taka zmienna.

(4)

4

Definiowanie wskaźników

Wskaźniki

typ_wskazywanego_obiektu * nazwa wskaźnika;

Np.:

int *wsk_na_int;

char * wsk_na_znak;

float * wsk_na_float;

dr Artur Bartoszewski - Podstawy programowania sem. 1 - WYKŁAD

(5)

5

Pojęcie wskaźnika

Podstawy

dr Artur Bartoszewski - Podstawy programowania sem. 1 - WYKŁAD

Aby uzyskać adres zmiennej statycznej, który można przechowywać w zmiennej wskaźnikowej posłużyć się można operatorem &

Zdefiniowanie wskaźnika na int oraz zmiennej typu int

Przekazanie adresu „zmiennej” do wskaźnika

(6)

6

Posługiwanie się wskaźnikami

Wskaźniki

Np.:

int *x; - definicja wskaźnika do obiektów typu int int st; - definicja obiektu typu int z liczbą 100 x = &st; - ustawienie wskaźnika na obiekt st

cout << *x; - wypisanie wartości obiektu wskazywanego przez x cin >> *x; - zapisanie wartości do wskaźnika

dr Artur Bartoszewski - Podstawy programowania sem. 1 - WYKŁAD

(7)

7

Posługiwanie się wskaźnikami

Wskaźniki

dr Artur Bartoszewski - Podstawy programowania sem. 1 - WYKŁAD

(8)

8

Posługiwanie się wskaźnikami

Wskaźniki

dr Artur Bartoszewski - Podstawy programowania sem. 1 - WYKŁAD

Wskaźniki jako argumenty funkcji - przekazując wskaźniki jako argumenty funkcji sprawiamy, że z wnętrza funkcji mamy pełny dostęp do zmiennych przekazanych jako argumenty (możemy je modyfikować).

Efekt jest podobny jak przy przekazywaniu argumentów przez referencję.

(9)

9

Obsługa tablica za pomocą wskaźników

Podstawy programowania w C++

dr Artur Bartoszewski - Podstawy programowania sem. 1 - WYKŁAD

(10)

10

Adres tablicy

Podstawy

NAZWA TABLICY jest równocześnie

ADRESEM JEJ ZEROWEGO ELEMENTU

Dla: int tab[10];

zapis: tab

jest równoznaczny z: &tab[0]

dr Artur Bartoszewski - Podstawy programowania sem. 1 - WYKŁAD

(11)

11

Wskaźnik do tablicy

Podstawy

dr Artur Bartoszewski - Podstawy programowania sem. 1 - WYKŁAD

Obsługa tablic za pomocą zmiennych:

(12)

12

Wskaźnik do tablicy

Podstawy

dr Artur Bartoszewski - Podstawy programowania sem. 1 - WYKŁAD

Po elementach tablicy możemy poruszać się na dwa sposoby:

1. przy użyciu indeksów podając kolejne numery komórek począwszy od 0,

2. przeskakując kolejne komórki tablicy z wykorzystaniem wskaźnika.

(13)

13

Wskaźnik do tablicy

Podstawy

dr Artur Bartoszewski - Podstawy programowania sem. 1 - WYKŁAD

Przykład – wypisanie elementów tablicy poruszając się po niej

wskaźnikiem.

(14)

14

Przekazywanie tablic do funkcji

Podstawy programowania w C++

dr Artur Bartoszewski - Podstawy programowania sem. 1 - WYKŁAD

(15)

15

Przekazywanie tablic do funkcji

Podstawy

dr Artur Bartoszewski - Podstawy programowania sem. 1 - WYKŁAD

Tablicy nie można przesłać przez wartość.

Można tak przesłać pojedyncze jej elementy, ale nie całość.

Mamy funkcję o nagłówku:

void funkcja (float tab[]);

która spodziewa się jako argumentu: tablicy liczb typu float, Taką funkcję wywołujemy na przykład tak:

float tablica[4]={ 7, 8.1, 4, 4.12};

funkcja (tablica);

(16)

16

Stałe wskaźniki i

wskaźniki na stałe

Podstawy programowania w C++

dr Artur Bartoszewski - Podstawy programowania sem. 1 - WYKŁAD

(17)

17

Wskaźniki i stałe

Podstawy

dr Artur Bartoszewski - Podstawy programowania sem. 1 - WYKŁAD

Wskaźnik na stałą – wskazuje na zmienną typu z kwantyfikatorem const (stałą).

(18)

18

Wskaźniki i stałe

Podstawy

dr Artur Bartoszewski - Podstawy programowania sem. 1 - WYKŁAD

Stały wskaźnik – wskazuje zawsze w to samo miejse pamięci (nie można go przesuwać)

Przykładem stałego wskaźnika jest nazwa tablicy

(19)

19

Wskaźniki na funkcję

Podstawy programowania w C++

dr Artur Bartoszewski - Podstawy programowania sem. 1 - WYKŁAD

(20)

20

Wskaźniki na funkcję

Podstawy

dr Artur Bartoszewski - Podstawy programowania sem. 1 - WYKŁAD

Wskaźnik na funkcję – przechowuje adres funkcji. Może być wykorzystany do jej wywołania.

Definicja:

Przypisanie adresu funkcji:

(21)

21

Wskaźniki do funkcji

Podstawy

dr Artur Bartoszewski - Podstawy programowania sem. 1 - WYKŁAD

(22)

22

algorytmy w praktyce

 Sortowanie bąbelkowe

Podstawy programowania

(23)

23

dr Artur Bartoszewski - Podstawy programowania , sem. 1- WYKŁAD

Przykład – sortowanie bąbelkowe

V. Procedury i funkcje

W każdym przejściu pętli wewnętrznej porównywane są ze sobą dwie kolejne wartości i w razie potrzemy są zamieniane miejscami.

W jednym cyklu pętli wewnętrznej, największa liczba (tak jak bąbelki w napoju gazowanym) w zbiorze będzie się przemieszczała na ostatnią pozycję.

W ten sposób otrzymujemy podzbiór częściowo już posortowany.

Czynności te powtarzamy dla zbioru

pominiętego o elementy już

poukładane

(24)

24

dr Artur Bartoszewski - Podstawy programowania , sem. 1- WYKŁAD

Przykład – sortowanie bąbelkowe

V. Procedury i funkcje

(25)

25

dr Artur Bartoszewski - Podstawy programowania , sem. 1- WYKŁAD

Przykład – sortowanie bąbelkowe

V. Procedury i funkcje

(26)

26

dr Artur Bartoszewski - Podstawy programowania , sem. 1- WYKŁAD

Przykład – sortowanie bąbelkowe

V. Procedury i funkcje

(27)

27

Literatura:

W prezentacji wykorzystano przykłady i fragmenty:

Grębosz J. : Symfonia C++, Programowanie w języku C++ orientowane obiektowo, Wydawnictwo Edition 2000.

Jakubczyk K.: Turbo Pascal i Borland C++ Przykłady, Helion.

Warto zajrzeć także do:

Sokół R. : Microsoft Visual Studio 2012 Programowanie w Ci C++, Helion.

Kerninghan B. W., Ritchie D. M.: język ANSI C, Wydawnictwo Naukowo Techniczne.

Dla bardziej zaawansowanych:

Grębosz J. : Pasja C++, Wydawnictwo Edition 2000.

Meyers S.: język C++ bardziej efektywnie, Wydawnictwo Naukowo Techniczne

dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Cytaty

Powiązane dokumenty

Nauczyciel zbiera swobodne wypowiedzi uczniów, ważne żeby wśród propozycji znalazły się:. jeżeli jesteś świadkiem cyberprzemocy, nie przesyłaj dalej krzywdzących

Indukcja pola magnetycznego zmienia się sinusoidalnie, wobec tego (zgod- nie z prawem indukcji Faradaya) indukuje ono prostopadłe pole elektryczne, któ- rego natężenie również

Wydaje się, że to jest właśnie granica, wzdłuż której przede wszystkim tworzyła się Europa Wschodnia, lub raczej wschodnia wersja „europejskości”: jest to

Wskaźnik to zmienna, której wartością jest adres pewnego obszaru pamięci, a zadaniem - wskazywanie na inne zmienne. Przypisanie wskaźnika do wskaźnika skutkuje skopiowaniem

Na przełomie lat 20- tych i 30-tych XX wieku niezależnie Kołmogorow, Nagumo oraz de Finetti wpadli na pomysł nowych średnich będących daleko idącym uogólnieniem

Tworzenie segmentu pamięci podobne jest do tworzenia pliku – segment jest plikiem specjalnym.. int shm_open(char *name, int oflag, mode_t

Ale z drugiej strony powtórzę coś, co już kiedyś po- wiedziałem: wydaje mi się, że nauczenie się medycyny w ciągu ośmiu godzin dziennie nie jest możliwe.. Na-

Może zatem zamiast zajmować się kolejnym projektem sieci minister zdrowia, w porozumieniu ze swoim sze- fem, Jarosławem Kaczyńskim, powołają Agencję Re- strukturyzacji