On-line učionica

15. april 2012.

Pokazivači i funkcije

Filed under: C posle Pascal-a,Programiranje — jelena100janovic @ 11:06 am

Sada ispitajmo blisku vezu između pokazivača i C-ovih ostalih glavnih delova. Počećemo sa funkcijama.

Kada C prosleđuje argumente funkcijama on to radi po vrednosti.

Ima puno slučajeva kada možda želimo da promenimo prosleđeni argument unutar funkcije i dobijemo novu vrednost kada funkcija završi. PASCAL ovo radi (var parametri). C eksplicitno koristi pokazivače da bi ovo uradio. PASCAL maskira činjenicu da su pokazivači odgovorni za implementaciju ovoga.

Najbolji način da proučimo ovo je da pogledamo primer gde moramo dobiti promenjene parametre.

Pokušajmo da napišemo funkciju koja razmenjuje vrednost promenljivih.

Uobičajeni poziv funkcije:

swap(a,b)

neće raditi.

Pokazivači obezbeđuju rešenje: Prosledite adresu promenljivih funkciji i pristupite adresi funkcije.

Dakle naš poziv funkcije u našem programu bi izgledao ovako:

swap(&a,&b)

Kod funkcije swap je jednostavan:

Ovaj program generiše sledeći izlaz:

Možemo vratiti pokazivač iz funkcije. Npr.:

Ovde vraćamo pokazivač čiji se sadržaj momentalno pretvara u promenljivu. Ovo moramo uraditi odmah s obzirom da je promenljiva na koju smo pokazivala lokalna za funkciju koja se sad završila. To znači da je adresni prostor slobodan i da može biti prepisan. Neće biti prepisan odmah nakon završetka funkcije tako da je ovo sasvim bezbedno.

3 komentara »

  1. Најбољи ми је овај део који каже да је код свап функције у ствари једноставан.🙂 Све је једноставно када се лепо објасни.

    Komentar od metodicar — 15. april 2012. @ 11:11 am | Odgovor

    • Ha, ha!😀 Oni su to sve već radili iz Pascal-a, tako da nema potrebe da se ponovo objašnjava ovde. Na času je drugačije – tu se uvek nađu neki koji nisu baš zapamtili😉

      Komentar od jelena100janovic — 15. april 2012. @ 11:19 am | Odgovor

      • Куку, деца ће да знају више о компјутерима од нас наставника (који нисмо информатичари).😀 Шалим се, наравно, тако и треба да буде – да буду бољи од нас, јер у супротном образовање нема никаквог смила.

        Komentar od metodicar — 15. april 2012. @ 11:25 am


RSS feed for comments on this post. TrackBack URI

Ostavite odgovor

Popunite detalje ispod ili pritisnite na ikonicu da biste se prijavili:

WordPress.com logo

Komentarišet koristeći svoj WordPress.com nalog. Odjavite se / Promeni )

Slika na Tviteru

Komentarišet koristeći svoj Twitter nalog. Odjavite se / Promeni )

Fejsbukova fotografija

Komentarišet koristeći svoj Facebook nalog. Odjavite se / Promeni )

Google+ photo

Komentarišet koristeći svoj Google+ nalog. Odjavite se / Promeni )

Povezivanje sa %s

Blog na WordPress.com.

%d bloggers like this: