Zmienne
Zmienne lokalne
- to zmienne zadeklarowane wewnątrz dowolnego bloku { ... }
- czas życia takiej zmiennej to czas wykonywania instrukcji bloku, w którym taka zmienna została zadeklarowana.
Kompilator po napotkaniu bloku generuje kod, który alokuje pamięć dla wszystkich zmiennych lokalnych tego bloku. Polega to na przesunięciu wskaźnika stosu o wielkość niezbędną do pomieszczenia na stosie wszystkich zmiennych lokalnych.
- zakres widoczności zmiennej, to instrukcje od momentu deklaracji, do końca bloku, w którym zmienna została zadeklarowana. Mamy jednak wyjątek - zmienna może zostać zasłonięta. O tym będzie za chwilę.
{ // 1
....
int a; // 2
{ // 3
....
int b; // 4
} // 5
} // 6
W przykładzie powyżej
- czas życia zmiennej a to czas wykonywania instrukcji 1-6
- czas życia zmiennej b to czas wykonywania instrukcji 3-5
- zakres widoczności zmiennej a to blok instrukcji 2-6
- zakres widoczności zmiennej b to blok instrukcji 4-5
Materiały przeznaczone wyłącznie dla studentów
Instytutu Informatyki i Matematyki Komputerowej UJ
Daniel Wilczak