On-line učionica

1. februar 2012.

Pokazivači

Filed under: Pascal,Programiranje — jelena100janovic @ 7:27 am

Pokazivač je promenljiva u kojoj se čuva memorijska adresa. S obzirom na to, kažemo da ta promenljiva pokazuje na tu adresu. Postoje dve vrste pokazivača, pokazivači na tip i prazni pokazivači. Pokazivači na tip pokazuju na promenljivu određenog tipa, npr. integer. Prazni pokazivači pokazuju na bilo kakvu promenljivu.

Deklaracija i korišćenje pokazivača na tip

Kada deklarišete pokazivač na tip stavljate znak ^ ispred tipa promenljive na koju želite da pokazuje. Evo primera kako se deklariše pokazivač na integer:

program Pokazivaci;
var

   p:^integer;
begin

end.

Znak @ može da se stavi ispred promenljive da biste dobili njenu memorijsku adresu. Ova memorijska adresa se onda može dodeliti pokazivaču, jer oni čuvaju memorijske adrese. Evo primera kako dodeliti memorijsku adresu jednog integer-a pokazivaču na integer:

program Pokazivaci;
var

   i:integer;
   p:^integer;
begin

   p:=@i;
end.

Ako želite da promenite vrednost na memorijskoj adresi na koju pokazuje pokazivač, prvo joj morate pristupiti preko pokazivača koristeći ^ posle imena pokazivača. Evo primera kako promeniti vrednost jednog broja sa 1 na 2 koristeći pokazivač:

program Pokazivaci;
var

   i:integer;
   p:^integer;
begin

   i:=1;
   p:=@i;
   p^:=2;
   writeln(i);
end.

Možete dodeliti novu memoriju pokazivaču na tip koristeći naredbu new (nov). Naredba new ima jedan parametar koji je pokazivač. Naredba new uzima memoriju veličine tipa na koji pokazuje pokazivač i postavlja pokazivač da pokazuje na tu memorijsku adresu. Kada završite sa korišćenjem pokazivača, upotrebite naredbu dispose (izbaci) da biste oslobodili memoriju koja je bila dodeljena pokazivaču. Evo primera:

program Pokazivaci;
var

   p:^integer;
begin

   new(p);
   p^:=3;
   writeln(p^);
   dispose(p);
end.

Deklaracija u korišćenje praznih pokazivača

Kada deklarišete prazan pokazivač koristite tip koji se zove pointer (pokazivač).

program Pokazivaci;
var

   p:pointer;
begin

end.

Kada dodeljujete memoriju praznom pokazivaču koristite naredbu getmem (uzmi memoriju) umesto naredbe new i naredbu freemem (oslobodi memoriju) umesto dispose. getmem i freemem imaju drugi parametar koji je veličina u bajtovima memorije koju dodeljujete pokazivaču. Možete ili napisati broj za veličinu, ili koristiti funkciju sizeof (veličina od) da biste dobili veličinu određenog tipa promenljive.

program Pokazivaci;
var

   p:pointer;
begin

   getmem(p,sizeof(integer));
   freemem(p,sizeof(integer));
end.

Zadatak za vežbanje:

  1. Napišite program koji učitava tri broja i, koristeći pokazivače, rotira njihove vrednosti. Na primer:

Ulaz: a=1, b=2, c=3
Izlaz: a=3, b=1, c=2

Ostavite komentar »

Nema komentara.

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

Create a free website or blog at WordPress.com.

%d bloggers like this: