1 / 8

Pokazivači (pointers)

Pokazivači (pointers). Pokazivači omogućavaju: učinkovito predstavljanje složenih struktura podataka dijeljenje istog memorijskog prostora od strane različitih dijelova koda promjenu vrijednosti parametara funkcije (referentni parametri) dinamičku alokaciju memorije

shawna
Télécharger la présentation

Pokazivači (pointers)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Pokazivači (pointers) • Pokazivači omogućavaju: • učinkovito predstavljanje složenih struktura podataka • dijeljenje istog memorijskog prostora od strane različitih dijelova koda • promjenu vrijednosti parametara funkcije (referentni parametri) • dinamičku alokaciju memorije • učinkovito rukovanje sa poljima

  2. Što je pokazivač? • Pokazivač je varijabla čiji je sadržaj adresa druge varijable. • U pokazivaču nije pohranjena vrijednost integer, double ili nekog drugog tipa. • U pokazivaču je spremljena adresa na kojoj je pohranjena korisna vrijednost. • Pokazivač sadrži memorijsku adresu objekta na koji pokazuje.

  3. Usmjeravanje (inicijalizacija) pokazivača usmjeravanje pokazivača na N pokazivač varijabla N adresa varijable N kazalo kazalo=&N N &N ? 5 int*kazalo; int N=5; deklaracija i definicija varijable deklaracija pokazivača na int

  4. Pridruživanje pokazivača • Kada pokazivaču pridružimo drugi pokazivač oni nakon toga sadrže istu adresu (pokazuju na istu adresu). • Pridruživanje pokazivača ne mijenja sadržaj na danoj adresi. int a=2; int *p1=&a,*p2; a 2 p1 p2 p2=p1 ?

  5. Primjeri sa kviza: 1) Za dane naredbe: double x = 4.3; double* ptr = &x; 1. Vrijednost ptr je: 2. Vrijednost *ptr je: 3. Što se događa u memorijskom prostoru kada se izvršava slijedeća naredba: *ptr = 24.9; adresa varijable x 4.3 varijabla x dobiva vrijednost 24.9

  6. Ispis: QQ ZZ YY 2) Kakav ispis daje program? • #include <iostream.h> • int main() • { • char c = 'Q'; • char *char_pointer = &c; • cout<<c<<*char_pointer<<" "; • c = 'Z'; • cout<<c<<*char_pointer<<" "; • *char_pointer = 'Y'; • cout<<c<<*char_pointer<<" "; • return 0; • }

  7. Odaberi odgovor: A. ptr1 pokazuje na istu varijablu kao i ptr2 B. ptr1 i ptr2 pokazuju na različite varijable sa istom vrijednosti C. naredba je sintaktičkineispravna 4) Dane su deklaracije: double x = 3.14, y = 2.72; double *ptr1, *ptr2; ptr1 = &x; ptr2 = &y; Kakav je učinak slijedećih dodjela (nisu uzastopne)? 1. ptr1 = ptr2; 2. *ptr1 = ptr2; 3. *ptr1 = *ptr2; A C B

  8. 5) Dane su deklaracije: struct TipProizvoda { int kolicina; float cijena; }; TipProizvoda Proizvod1 = {17, 4.99}; TipProizvoda* pokazivac = &Proizvod1; Koji od slijedećih izraza predstavlja ispravni pristup sadržaju podatkovnog člana strukture Proizvod1? OK 1. (*pokazivac).cije88na 2. *pokazivac.cijena 3. pokazivac -> cijena OK

More Related