[ azzpoz @ 06.06.2013. 12:05 ] @
Code:
int polazna ( int broj, int brojac = 0)
{
   if (brojac == 5) return 1;
return 1+polazna(broj,++brojac);

}

MAIN: 
int broj = 5;
int broj2 = polazna(broj,0);



Interesuje me zašto se povećava brojač, ako smo ga inicijalizovali na početku funkcije vrijednošću ( 0 )?!
[ Mihajlo Cvetanović @ 06.06.2013. 12:24 ] @
Povećava se zbog ovog ++brojac. Ovo ++ je operator uvećavanja broja za jedan. Pošto stoji ++brojac onda je rezultat operacije brojac+1 (prvo se izvrši inkrementriranje, pa se onda gleda rezultat). Da je stajalo brojac++ (sa desne strane, umesto sa leve) onda bi rezultat operacije bila prethodna vrednost promenljive brojac, ali bi ipak brojac bio uvećan za jedan.
[ azzpoz @ 06.06.2013. 12:54 ] @
Npr. kad je brojac = 3, zašto ne dobija vrijednost ( 0 ), kao što je i napisano int brojac=0?
Zar ne bi uvijek trebao tu vrijednost primiti?
[ Mihajlo Cvetanović @ 06.06.2013. 13:06 ] @
Zato što je to samo podrazumevana vrednost koju će kompajler da ubaci ako je ti izostaviš. Ako pozivaš funkciju polazna(x) onda je drugi parametar 0, ali ako je pozivaš polazna(x, y) onda je drugi parametar y.

Nema preterane koristi od parametra koji uvek ima istu vrednost.