Code:
#include <cstdio>
void f()
{
int b;
printf("%d n",b);
b=2;
}
int main()
{
f();
f();
return 0;
}
#include <cstdio>
void f()
{
int b;
printf("%d n",b);
b=2;
}
int main()
{
f();
f();
return 0;
}
Mozda treba malo objasnjenje programa:
Program zapravo ne radi nista korisno, vec mi je sluzio da objasnim static promenljive. (umesto int b stavio sam prvo static int b). Naravno sa static int b rezultat je bio ocekivan, kada bi b dobilo vrednost 2 pri sledecem pozivu funkcije f otstamapana bi bila vrednost 2(za b). Onda ja izbrisem rec static(i dobijem gore napisan kod). I onda dobijem isti rezultat, sto mi nije jasno. Zar u ovom slucaju kada se izvrsi funkcija f() zatvore se zagrade{} i automatska promenljiva b treba da se izbrise. Pri sledecem pozivu funkcije b bi opet trebalo da da neku proizvoljnu vrednost. Ali to se ne desava. Zasto?
nadam se da ste me shvatili :)