Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Download
Standard view
Full view
of .
Save to My Library
Look up keyword
Like this
8Activity
0 of .
Results for:
No results containing your search query
P. 1
C++ Pokazivac Na Pokazivac

C++ Pokazivac Na Pokazivac

Ratings: (0)|Views: 612 |Likes:
Published by Miroslav Novta

More info:

Published by: Miroslav Novta on Jan 31, 2009
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF or read online from Scribd
See more
See less

06/26/2013

pdf

 
 1
Pokaziva
č
na pokaziva
č
 
Osim pokaziva
č
a na varijable i funkcije može se deklarirati i pokaziva
č
na pokaziva
č
. Pokaziva
č
 na pokaziva
č
ima slijede
ć
u sintaksu: <
tip> **naziv_pokaziva
č
a;
 
Pojašnjenje:
Pokaziva
č
 
**naziv_pokaziva
č
a
pokazuje na pokaziva
č
koji pokazuje na tip varijable
tip
.Mnogo je složenije napisati što pokazuje pokaziva
č
na pokaziva
č
, nego razumijeti i primjenitiu programima. Zato ponovno slijedi primjer.#include<iostream.h>voidmain(){intx, y, *xptr, **ptrptr;
 //Deklaracija varijabli x,y, pokaziva
č 
a xptr i pokaziva
č 
a na //pokaziva
č 
ptrptr.
x=10; y=10;cout<<"x = "<<x<<endl;xptr=&x;
 //Pokaziva
č 
u xptr se pridružuje adresa varijable x .
*xptr=20;
 //Vrijednost varijable na koju pokazuje xptr postavlja se na 20.
cout<<"x = "<<x<<" i *xptr = " <<*xptr<<endl;
ptrptr=&xptr;
 
 //Pokaziva
č 
u ptrptr se pridružuje adresa pokaziva
č 
a xptr.
**ptrptr=30;
 //Varijabli x se preko pokaziva
č 
a **ptrptr pridružuje vrijednost 30.
cout<<"x = "<<x<<" *xptr = "<<*xptr<<" i **ptrptr = "<<**ptrptr<<endl;*ptrptr=&y;
 //Pokaziva
č 
sada pokazuje na varijablu y.
 **ptrptr=40;
 //Varijabli y se pridružuje 40, jer ptrptr pokazuje na ptr, a ptr sada na y.
 cout<<"x = "<<x<<", y= "<<y<<", *xptr = "<<*xptr<<" i **ptrptr ="<<**ptrptr<<endl;getchar() ;
}Program 5. Program za koncept „pokaziva
č
na pokaziva
č
Pojašnjenja bitnih dijelova programa:
Deklaracije
varijable
:
x i y tipa
int
,
 pokaziva
č 
a
: xptr, koji pokazuje na varijablu tipa
int
,
 pokaziva
č 
a
: ptrptr, koji pokazuje na pokaziva
č
, a on sadrži adresu jedne varijabletipa
int
,
Pridruživanje
 pokaziva
č 
u xptr 
se pridružuje adresa varijable x, xptr pokazuje prvo na x,
varijabli x 
se pridružuje 20 preko pokaziva
č
a xptr dereferenciranjem,
 pokaziva
č 
ptrptr 
se pridružuje adresa pokaziva
č
a xptr, tj. ptrptr pokazuje na xptr,
 pokaziva
č 
u xptr 
se pridružuje 30 preko pokaziva
č
a ptrptr dereferenciranjem, a to jeimplicitno pridruživanje vrijednosti varijabli x preko pokaziva
č
a xptr
Pridruživanje
 pokaziva
č 
u xptr 
se pridružuje adresa varijable y, xptr sada pokazuje na y,
varijabli y 
se pridružuje 40 preko pokaziva
č
a xptr dereferenciranjem, a to jeimplicitno pridruživanje vrijednosti varijabli y preko pokaziva
č
a xptr.Referenciranje varijable x preko pokaziva
č
a *xptr
ć
e time biti završeno, tj. pokaziva
č
 *xptr ne pokazuje više na varijablu x !Cijeli program je mogu
ć
e komprimirati u zaklju
č
ak da je mogu
ć
e je pristupiti bilo kojojvarijabli preko pokaziva
č
a na tu varijablu. To je smisao primjene pokaziva
č
a na pokaziva
č
.
 
 2
Reference
Referenca je posebna vrsta pokaziva
č
a koja promatra pokaziva
č
e kao objekte. One se uvijekdeklariraju pomo
ć
u operatora za referenciranje
 
(&).Sintaksa: <tip> & naziv;Primjer deklaracije i inicijalizacije referenceintA;int&rA = A;rA = 50 ; // rA je referenca na varijablu A. Zna
č
i što i naredba A=50. Reference se uvijek istodobno deklariraju i inicijaliziraju:int&rA = A;
Reference i pokaziva
č
a kao argumenati funkcije
Objekti se mogu u funkcije prenositi kao vrijednosti. Ako se funkcije služe strukturom iklasom uvijek je bolje njihove objekte prenositi kao reference nego kao vrijednosti. Istovrijedi i za elementarne tipove podataka (npr. long ili int).
Primjer
voidkvadrat(intx)  // Argument funkcije
kvadrat
se prenosi kao referenca.{...}Ako se parametar funkcije prenosi kao vrijednost, onda
 se stvara kopija objekta i funkcija izvršava operacije s kopijom.
 Ako se parametar prenosi kao referenca, onda se u funkciju predaje samo pokaziva
č
naobjekt ali ne i sam objekt (ne stvara se kopija). Iz te
č
injenice slijede dvije bitne(odlu
č
uju
ć
e) posljedice:a) argumente mogu promijeniti samo funkcije, ako se oni prenose kao reference,b) ne stvara se kopija objekta (argumenta) na koji se referencira.Ponovno slijedi primjeri iz kojih
ć
e biti vidljive razlike u prijenosu argumenata funkcije kaoreferenci u odnosu na prijenos po vrijednostima.
 
Slijedi primjer prijenosa parmetara funkcijekao referenci.#include <vcl.h>#include<iostream.h>void s(int &x, int &y){--x;
 // Vrijednost se varijable x umanjuje za 1.
--y;
 // Vrijednost se varijable y umanjuje za 1.
cout <<x<<endl;cout<<y;}void main (){int a = 43; int b = 40;s(a, b); // a=42, a druga je varijabla b=39getchar();}
 Program 6. Reference kao argumenti funkcije
Drugo se rješenje može prikazati bez primjene referenci. Parametri funkcije su varijablexPozicija i yPozicija tipa int.
 

Activity (8)

You've already reviewed this. Edit your review.
1 hundred reads
1 thousand reads
Mario Tuđan liked this
dtomic liked this
jocer2009 liked this
Suncica91 liked this

You're Reading a Free Preview

Download
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->