W poprzednim dziale była mowa na temat przekazywania zmiennych poprzez parametry, właściwie to nie wytłumaczyłem, dlaczego musimy to robić, odpowiedź znajduje się tutaj. Każda zmienna ma swój zasięg, czyli to gdzie jest widoczna w programie.

1. Zmienne globalne

Taka zmienna jest widoczna w całym programie, w każdej funkcji w programie. Tworzy się ją w ciele programu(poza funkcjami). Przykładowy program obrazujący użycie zmiennych globalnych:

#include <iostream>


char litera_globalna='t';
//zmienna będzie widoczna w całym programie, we wszystkich funkcjach

int liczba_globalna;
//zmienna zostanie automatycznie zainicjowana zerem


void wyswietl()
{
  liczba_globalna=
1
;
//zmienna globalna widoczna wszędzie, można jej tu użyć

  litera_globalna='k';
}

int main(int argc,char* argv[])
{
  wyswietl();
  liczba_globalna+=
100
;
//i tutaj też jest widoczna

  system(
"PAUSE"
);
  return
0
;
}


Jak widać zmienna globalną deklarujemy w ciele programu, poza funkcjami. Będzie ona widoczna w całym programie(zakres całego programu). Taka zmienna tworzona na czas działania całego programu. Podczas jej tworzenia(uruchamiania programu), jej wartość jest inicjowana wartością, którą jej przypiszemy, a jeżeli nic jej nie przypiszemy to wartość takiej zmiennej automatycznie się wyzeruje(zainicjuje się zerem).

2. Zmienne lokalne

Taka zmienna widoczna jest tylko w funkcji, gdzie ją utworzyliśmy. Taką zmienną deklarujemy wewnątrz funkcji(ciele funkcji) i tylko tam jest widoczna, nigdzie indziej nie można jej używać. Tworzona jest podczas jej deklaracji w funkcji i usuwana z pamięci podczas wyjścia z funkcji, w której została utworzona. Jeżeli nie zainicjujemy jej wartości to przyjmie aktualny układ bitów z miejsca pamięci, w którym została utworzona.

#include <iostream>


void funkcja(int przekazany_argument)
{
  
//w tej funkcji nie możemy uzyć zmiennej lokalnej liczba i do tego służy przekazywanie wartości zmiennych,
  //aby pobrać wartość ze zmiennej w main, mamy zmienną lokalną przekazany_agrument,
  //która ma przekazaną wartość ze zmiennej liczba

  std::cout<<przekazany_argument<<std::endl;
  
//po wykonaniu tej funkcji zmienne lokalne(argument funkcji), zostają usunięte z pamięci i juz ich nie ma

}

int main(int argc,char* argv[])
{
  int zmienna_lokalna=
1
;
//zmienna lokalna, widoczna !tylko! w funkcji main()

  int liczba;
//zmienna lokalna niezainicjowana, nie wiemy jaką ma wartość

  funkcja(liczba);
//przekazujemy do argumentu wartość zmiennej liczba

  system(
"PAUSE"
);
  return
0
;
}
Wejść na stronę:     Ilość osób online:
Prawa autorskie © 2008 crayze. Wszelkie prawa zastrzeżone.
crayze7@gmail.com