Zasięg zmiennej zależy od miejsca jej deklaracji. Jeżeli zadeklarujesz poza funkcjami, przed main, to będzie to zmienna globalna. A jeżeli zrobisz takie coś w kodzie:
{
int kaczka = 0;
}
to jej zasięg będzie wręcz zerowy i skończy się natychmiast jak się zacznie. Dlatego nie można podać zasięgu zmiennej na podstawie jej typu. O zasięgu decyduje programista.
Bardziej klasyczny przykład
for(int i=1; i<10; i++) {
cout << i ; // tu jest OK, bo jest zasięg
}
cout << i ; // a tu już error.
ale już tak:
int i;
for(i=1; i<10; i++) {
cout << i ; // tu jest OK, bo jest zasięg
}
cout << i ; // i tu jest też OK