• 9 odgovora
  • 3.815 pregleda
famozni pokazivaci!!! 14.09.2004. u 10:42 · pre 269 meseci #1
Pozdrav svima.

Posto sam resio da naucim c++ (mora se), a DOBRO poznajem Basic u koma na (ne)srecu nema pokazivaca, sada muku mucim da ih skontam.

Ima li ko neki DOBAR sajt na kome su isti objasnjeni. Ja sam trazio po netu i nista novo nisam naucio, jer vecina tih "objasnjena" ide slicno ovome:

Code:

int main()
{
   int x;
   int *p;
   p=&x;
   cin>>x;
   cout<<*p;
   return 0;
}


I meni stvarno nije jasno zasto bih ja pravio pokazivac na x, da bih kasnije umesto cout<<x, koristio cout<<*p ?!?!?!

Sve u svemu HVALA>
Potpis
Hide me away from danger
Re: famozni pokazivaci!!! 14.09.2004. u 10:47 · pre 269 meseci #2
probaj da nadjes (online) verziju knjige C++ in 21 days od Jesse Liberty-ja. Tu su pokazivaci odlicno objasnjeni, i to bas kroz lepe primere...na ovom forumu je bilo reci o toj knjizi, probrauzaj, naci ces neki link sigurno...
Potpis
Jeff, one day you’ll understand that it’s harder to be kind than clever.
Re: famozni pokazivaci!!! 18.09.2004. u 12:08 · pre 269 meseci #4
hvala na odgovorima,
shvatio sam kako rade i kako se koriste, ali...
jos uvek mi nije jasno zasto bih ih koristio. Jel ima neko neki kontretan primer gde se vidi koliko su pokazivaci i reference korisni (i molim vas samo mi nemojte reci ''linkovane liste'')

Potpis
Hide me away from danger
Re: famozni pokazivaci!!! 18.09.2004. u 12:25 · pre 269 meseci #5

Citat:

korisni (i molim vas samo mi nemojte reci &amp;quot;&amp;quot;linkovane

liste&amp;quot;&amp;quot;)



A šta bi ti da ti ljudi kažu?


f
Re: famozni pokazivaci!!! 18.09.2004. u 14:34 · pre 269 meseci #6
Konkretan primer gde su pokazivaci korisni je NekaKlasa::NekiMetod(NekaDrugaKlasa* objekat), neki fiktivni metod neke fiktivne klase koji kao argument prima objekat tipa neke trece klase... Primeti da se kao argument prosledjuje POKAZIVAC (mada bi neki koristili referencu, ali ja sam odabrao pokazivac jer je to tema ovog "thread"-a). Zasto? - Zato sto kada bi se prosledjivao ceo objekat dolazilo bi prilikom SVAKOG poziva tog metoda do kopiranja objekta na stek. Ako je objekat tipa NekaDrugaKlasa veliki (par kilobajta recimo) to znaci da bi se nonstop rezervisala velika kolicina memorije (ovo je pogotovo primetno ako se objekti tog tipa smestaju u neku listu ili niz). Umesto toga, koriste se pokazivaci, tako da nema ovog kopiranja.
Mozda je trebalo nekako jasnije objasniti ovo, ali meni nije na pamet pao neki "slikovitiji" nacin, razumljiv za VB programere.
Verovao ili ne VB sve svoje objekte prenosi funkcijama/procedurama upravo na ovaj nacin (interno, to VB programeri ne znaju)! :) Dakle interno VB koristi jaaaako puno pokazivace! :) C i C++ koriste nesto slicno "BY VAL" direktivi u VB-u... Znaci, uvek se pravi lokalna kopija promenljive koja se prenosi kao argument, osim ako se ne prenosi po referenci (BY VAL u VB-u).
Potpis
Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
Re: famozni pokazivaci!!! 18.09.2004. u 15:35 · pre 269 meseci #7
pa evo prost primer, prenos argumenata ka funkciji je uvek preko vrednosti(dodeljevinjaem), e sada sta ako pozelis da ti funkcija promeni vrednost tog parametra koji je prosledjen funkciji. tada je jedini nacin da prosledis pokazivac (referenca je poseban tip pokazivaca).

Opet kada naprimer prosledjujes objekat neke klase brze je proslediti referencu ili pokazivac na njega nego cisti objekat jer se izbegava operacija dodele koja za neke velike klase moze da bude u procesorskom vremenu dosta dugacka, a kopiranje njegove adrese je jedna masinsa instrukcija.
Potpis
http://speedy-order.com
Re: famozni pokazivaci!!! 18.09.2004. u 18:12 · pre 269 meseci #8
e hvala, mislim da sam konacno shvatio cemu sluze. HVALA svima.
Potpis
Hide me away from danger
Re: famozni pokazivaci!!! 18.09.2004. u 22:40 · pre 269 meseci #9
Nisi ništa shvatio. Shvatićeš tek kada budeš radio dinamičke strukture (liste, drveta, itd.).
Potpis
Nije bitno koji su zaključci izvučeni, već kako se do njih došlo.
Re: famozni pokazivaci!!! 18.09.2004. u 23:56 · pre 268 meseci #10
Stvarno ću da zaključam ovu temu, a OP-a molim da se malo informiše unaokolo, ništa to ne boli...

f
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme