13

Pokaziva Č i

Embed Size (px)

DESCRIPTION

Pokaziva Č i. Pokaziva č i. Pokazivač (pointer) je promenljiva koja sadrži adresu neke druge promenljive. Pokazivači i nizovi su u programskom jeziku C veoma bliski, pa se iz tog razloga u ovom poglavlju opisuju zajedno. - PowerPoint PPT Presentation

Citation preview

Page 1: Pokaziva Č i
Page 2: Pokaziva Č i

Pokazivač (pointer) je promenljiva koja sadrži adresu neke druge promenljive. Pokazivači i nizovi su u

programskom jeziku C veoma bliski, pa se iz tog razloga u ovom poglavlju opisuju zajedno.

Prilikom programiranja pokazivači mogu biti veoma moćan alat, koji omogućava pisanje kompaktnijeg i

efikasnijeg koda. Međutim, njihovo nepravilno korišćenje može ozbiljno narušiti čitljivost i funkcionalnost

programa.

Page 3: Pokaziva Č i

Memoriju računara možemo posmatrati kao niz numerisanih (adresiranih) memorijskih ćelija, kojima se može pristupati pojedinačno ili u povezanim grupama. Najmanja memorijska jedinica (ćelija) kojoj se može pritupiti je bajt. Jedan bajt memorije je dovoljan za čuvanje jednog char podatka, dva bajta mogu čuvati short celobrojni tip podatka, a četiri uzastopna bajta mogu da formiraju long. Slično, za smeštanje pokazivača se najčešće koriste grupe od dve ili četiri uzastopne ćelija (bajta).

Page 4: Pokaziva Č i

Da bismo dobili adresu neke promenljive u memoriji, koristimo operator &. Tako izraz p=&c; pokazivaču p dodeljuje adresu promenljive c i tada kažemo da p „pokazuje na“ c.

Page 5: Pokaziva Č i

#include <stdio.h> int main () { int a = 3, *b; b = &a; scanf("%d", b); printf("%d\n", a); return 0; }

Primer korišćenja pokazivaca.Najčešće za pozivanje pokazivača se koristi ’’*’’.

Page 6: Pokaziva Č i

Pokazivač je varijabla koja sadrži adresuint a;int *pa; /* pokazivac na int */pa = &a; /* uzmi adresu od a i pohrani je u pokazivac pa */

Page 7: Pokaziva Č i

U većini programskih jezika koji podržavaju pokazivače, pokazivači se dele na tipske i bestipske.Uz tipske pokazivače se veže informacija o tipu promjenljivih na koje će dati pokazivač moći pokazivati, odnosno čije će adrese moći čuvati. Kada deklarišemo tipski pokazivač, on do kraja svog vijeka ima isti tip.Bestipski pokazivači nemaju određen tip promjenljive na koje će moći pokazivati, te mogu pokazivati na sve promjenljive podjednako. Na uštrb toga, međutim, postoje određena ograničenja vezana za ovu vrstu pokazivača:nije dozvoljeno dereferenciranje (vidjeti poglavlje „Referenciranje i dereferenciranje“, niže)nije dozvoljena pokazivačka aritmetika u jezicima u kojima je podržana za tipske pokazivačeBestipski pokazivači se najčešće koriste u situacijama kada određena funkcija prihvata podatke promjenljivog tipa ili kada nam tip podatka nije unaprijed poznat.

Page 8: Pokaziva Č i

Pokazivačka aritmetika se odnosi na poseban način vršenja računskih operacija sabiranja i oduzimanja kada među operandima ima i pokazivača. Tada često ne važe uobičajena pravila pri računanju, tj. adrese koje pokazivači čuvaju neće se sabirati i oduzimati kao obični brojevi. Pokazivačka aritmetika za svrhu ima sofisticirano rukovanje pokazivačima kako bi se dobili određeni rezultati. Pomoću pokazivačke aritmetike, pokazivač se može kretati po određenim memorijskim lokacijama, mogu se mjeriti udaljenosti jedne memorijske lokacije od druge u zavisnosti od tipova pokazivača itd.

Page 9: Pokaziva Č i

U programskom jeziku C, pokazivači se dele na tipske i bestipske.

Pored pokazivača na obične promjenljive, postoje i pokazivači na funkcije. Pokazivači na funkcije se mogu prosljeđivati drugim funkcijama kao argumenti i preko njih se mogu pozivati funkcije na koje pokazuju, što im je i primarna primena.

Page 10: Pokaziva Č i

U programskom jeziku C, najvažnije primjene pokazivača su sljedeće:prenos argumenata funkciji po referenciimplementacija nizovaimplementacija dinamičkih struktura

Page 11: Pokaziva Č i
Page 12: Pokaziva Č i

Informacije i podatci preuzeti sa sledećih sajtova:http://sr.wikipedia.org/sr/%D0%9F%D0%BE%D0%BA%D0%B0%D0%B7%D0%B8%D0%B2%D0%B0%D1%87_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%B8%D1%80%D0%B0%D1%9A%D0%B5)

Page 13: Pokaziva Č i