int i int j0 k3 float f 12























![Низови int m[5][7]; // m je niz od 5 elemenata; // svaki element je Низови int m[5][7]; // m je niz od 5 elemenata; // svaki element je](https://slidetodoc.com/presentation_image/2dee1a978041f40b2dbce3d7978cdf35/image-24.jpg)
![Низови int a[10]; int *p=&a; a[2]=1; p[3]=3; p=p+1; *(p+2)=1; p[-1]=0; // a je niz Низови int a[10]; int *p=&a; a[2]=1; p[3]=3; p=p+1; *(p+2)=1; p[-1]=0; // a je niz](https://slidetodoc.com/presentation_image/2dee1a978041f40b2dbce3d7978cdf35/image-25.jpg)

























- Slides: 50
Уграђени типови и декларације int i; int j=0, k=3; float f 1=2. 0, f 2=0. 0; double Pi=3. 1415926; char a='a', nul='0'; 9
Показивачи int i=0, j=0; int *pi; pi=&i; *pi=2; j=*pi; pi=&j; // objekti i i j tipa int; // objekat pi je tipa "pokazivac na int" (tip: int*); // vrednost pokazivaca pi je adresa objekta i, // pa pi ukazuje na i; // *pi oznacava objekat i; i postaje 2; // j postaje jednak objektu na koji ukazuje pi, // a to je i; // pi sada sadrži adresu j, tj. ukazuje na j; 11
Показивачи osoba otac("Petar Simic", 40); // objekat otac klase osoba; osoba *po; // po je pokazivac na tip osoba; po=&otac; // po ukazuje na objekat otac; (*po). ko_si(); // poziv funkcije ko. Si objekta otac; po->ko_si(); // isto što i (*po). ko. Si(); 13
Показивачи int i=0, j=0; int *pi=&i; int **ppi; ppi=π *pi=1; **ppi=2; *ppi=&j; ppi=&i; // i i j tipa int; // pi je pokazivac na int, ukazuje na i; // ppi je tipa "pokazivac na - int"; // ppi ukazuje na pi; // pi ukazuje na i, pa i postaje 1; // ppi ukazuje na pi, // pa je rezultat operacije *ppi objekat pi; // rezultat još jedne operacije * je objekat na koji ukazuje // pi, a to je i; i postaje 2; // ppi ukazuje na pi, pa pi sada ukazuje na j, // a ppi još uvek na pi; // greška: ppi je pokazivac na int, // a ne pokazivac na int! 17
Показивачи int i=0; int *pi 1=&i, *pi 2; void *pv; pv=pi 1; pi 2=pv; // pi 1 i pi 2 su pokazivaci na int // pv je pokazivac na void // sada i pv ukazuje na i // greska! 20
Низови int m[5][7]; // m je niz od 5 elemenata; // svaki element je niz od 7 elemenata tipa // int; m[3][5]=0; // pristupa se cetvrtom elementu niza m; // on je niz elemenata tipa int; // pristupa se zatim njegovom sestom // elementu i on postaje 0; 24
Низови int a[10]; int *p=&a; a[2]=1; p[3]=3; p=p+1; *(p+2)=1; p[-1]=0; // a je niz objekata tipa int; // p ukazuje na a[0]; // a[2] je isto što i *(a+2); a se konvertuje u // pokazivac koji ukazuje na a[0]; rezultat // sabiranja je pokazivac koji ukazuje na a[2]; // dereferenciranje tog pokazivaca (*) // predstavlja zapravo a[2]; a[2] postaje 1; // p[3] je isto što i *(p+3), a to je a[3]; // p sada ukazuje na a[1]; // a[3] postaje sada 1; // p[-1] je isto što i *(p-1), a to je a[0]; 25
Изрази • Оператор доделе: a=b; // a je levi a b desni operand operacije dodele // oznacene sa = a=b=c; // dodeli c objektu b i vrati tu vrednost; zatim // dodeli tu vrednost u a; prema tome, c je // dodeljen i objektu b i objektu a; • Видимо да оператор доделе има споредни ефекат. 27
Наредбе { int a, c=0, d=3; a=(c++)+d; int i=a; i++; } // pocetak slozene naredbe (bloka); // deklaracija kao naredba; // izraz kao naredba; // kraj slozene naredbe (bloka); 29
Наредбе if (izraz) naredba else naredba if (a++) b=a; // inkrementiraj a; ako je a bilo razlicito od // 0, dodeli novu vrednost a objektu b; if (c) a=c; // ako je c razlicito od 0, dodeli ga objektu a, else a=c+1; // inace dodeli c+1 objektu a; 30
Наредбе for (inicijalna_naredba izraz 1; izraz 2) naredba for (int i=0; i<100; i++) { //. . . Ova petlja se izvrsava tacno 100 puta } for (; ; ) { //. . . Beskonacna petlja } 31
Функције • Декларација функције specifikacija_tipa ime_fje (lista_argumenata); • Дефиниција функције specifikacija_tipa ime_fje (lista_argumenata) blok 34
Функције class brojac { int broj; public: funkcija brojac(); // konstruktor funkcija povecaj(); }; funkcija brojac: : brojac() {broj=0; } funkcija brojac: : povecaj() { int privr; privr=broj+1; broj=privr; return privr; } 36
Функције class brojac { int broj; public: funkcija brojac(); // konstruktor int povecaj(); }; 37
Функције class brojac { int broj; public: brojac(); // konstruktor ne vraca cak ni void int povecaj(); }; 38
Функције brojac: : brojac() {broj=0; } int brojac: : povecaj() { broj++; return broj; } 39
Функције brojac b; // poziv konstruktora int a=0, c=1; a=c+b. povecaj(); int brojac: : povecaj() { return ++broj; } 40
Функције class brojac { int broj; public: brojac(); // konstruktor ne vraca cak ni void int povecaj(int koliko_puta, int za_koliko); }; brojac: : brojac() {broj=0; } int brojac: : povecaj(int puta, int koliko) { return broj+=puta*koliko; } 43
Функције int zbir (brojac a, brojac b) { return a. povecaj(1, 1)+b. povecaj(1, 1); } 46
Функције int f(int); // f je tipa "funkcija koja prima jedan //argument tipa int i vracа int"; int (*p)(int); // p je tipa "pokazivac na funkciju // koja prima jedan argument tipa int // i vraca int"; p=&f; // p ukazuje na f; int a; a=(*p)(1); // poziva se funkcija na koju ukazuje p, // a to je funkcija f; 48
Структура програма class brojac { int broj; public: brojac(); // konstruktor ne vraca cak ni void int povecaj(int koliko_puta, int za_koliko); }; brojac: : brojac() { broj=0; } int brojac: : povecaj(int puta, int koliko) { return broj+=puta*koliko; } void main () { brojac a, b; int i=0, j=3; i=a. povecaj(0, j)+b. povecaj(2, ++j); } 50