34 ROZDZIAŁ 7. ZMIENNE int kopia_wieku; /* tu stary kompilator C zgłosi błąd */ /* deklaracja występuje po instrukcji (printf). */ kopia_wieku = wiek; Według nowszych standardów możliwe jest deklarowanie zmiennej w dowolnym miejscu programu, ale wtedy musimy pamiętać, aby zadeklarować zmienną przed jej użyciem. To znaczy, że taki kod jest niepoprawny: printf ("Mam %d lat\n", wiek); int wiek = 17; Należy go zapisać tak: int wiek = 17; printf ("Mam %d lat\n", wiek); Język C nie inicjalizuje zmiennych lokalnych. Oznacza to, że w nowo zadeklaro- wanej zmiennej znajdują się śmieci - to, co wcześniej zawierał przydzielony zmiennej fragment pamięci. Aby uniknąć ciężkich do wykrycia błędów, dobrze jest inicjalizować (przypisywać wartość) wszystkie zmienne w momencie zadeklarowania. Zasięg zmiennej Zmienne mogą być dostępne dla wszystkich funkcji programu — nazywamy je wte- dy zmiennymi globalnymi . Deklaruje się je przed wszystkimi funkcjami programu: #include int a,b; /* nasze zmienne globalne */ void func1 () { /* instrukcje */ a=3; /* dalsze instrukcje */ } int main () { b=3; a=2; return 0; } Zmienne globalne, jeśli programista nie przypisze im innej wartości podczas defi- niowania, są inicjalizowane wartością 0. Zmienne, które funkcja deklaruje do “własnych potrzeb” nazywamy zmiennymi lokalnymi . Nasuwa się pytanie: “czy będzie błędem nazwanie tą samą nazwą zmiennej globalnej i lokalnej?”. Otóż odpowiedź może być zaskakująca: nie. Natomiast w danej funkcji da się używać tylko jej zmiennej lokalnej. Tej konstrukcji należy, z wiadomych względów, unikać.
... zobacz całą notatkę
Komentarze użytkowników (0)