Zakres zmiennych w C ++
Zakres to region programu i najogólniej mówiąc istnieją trzy miejsca, w których można zadeklarować zmienne -
Wewnątrz funkcji lub bloku, który nazywa się zmiennymi lokalnymi,
W definicji parametrów funkcji nazywamy parametrami formalnymi.
Poza wszystkimi funkcjami nazywanymi zmiennymi globalnymi.
Co to jest funkcja i jej parametr dowiemy się w kolejnych rozdziałach. Tutaj wyjaśnijmy, czym są zmienne lokalne i globalne.
Zmienne lokalne
Zmienne zadeklarowane wewnątrz funkcji lub bloku są zmiennymi lokalnymi. Mogą być używane tylko przez instrukcje, które znajdują się wewnątrz tej funkcji lub bloku kodu. Zmienne lokalne nie są znane z funkcji innych niż ich własne. Poniżej znajduje się przykład z użyciem zmiennych lokalnych -
#include <iostream>
using namespace std;
int main () {
// Local variable declaration:
int a, b;
int c;
// actual initialization
a = 10;
b = 20;
c = a + b;
cout << c;
return 0;
}
Zmienne globalne
Zmienne globalne są definiowane poza wszystkimi funkcjami, zwykle w górnej części programu. Zmienne globalne zachowają swoją wartość przez cały okres istnienia programu.
Dostęp do zmiennej globalnej można uzyskać za pomocą dowolnej funkcji. Oznacza to, że zmienna globalna jest dostępna do użycia w całym programie po jej zadeklarowaniu. Poniżej znajduje się przykład z użyciem zmiennych globalnych i lokalnych -
#include <iostream>
using namespace std;
// Global variable declaration:
int g;
int main () {
// Local variable declaration:
int a, b;
// actual initialization
a = 10;
b = 20;
g = a + b;
cout << g;
return 0;
}
Program może mieć taką samą nazwę dla zmiennych lokalnych i globalnych, ale wartość zmiennej lokalnej wewnątrz funkcji będzie miała pierwszeństwo. Na przykład -
#include <iostream>
using namespace std;
// Global variable declaration:
int g = 20;
int main () {
// Local variable declaration:
int g = 10;
cout << g;
return 0;
}
Kiedy powyższy kod jest kompilowany i wykonywany, daje następujący wynik -
10
Inicjalizacja zmiennych lokalnych i globalnych
Gdy zdefiniowana jest zmienna lokalna, nie jest inicjalizowana przez system, należy ją zainicjować samodzielnie. Zmienne globalne są inicjowane automatycznie przez system po ich zdefiniowaniu w następujący sposób -
Typ danych | Inicjator |
---|---|
int | 0 |
zwęglać | '\ 0' |
pływak | 0 |
podwójnie | 0 |
wskaźnik | ZERO |
Dobrą praktyką programistyczną jest prawidłowe inicjowanie zmiennych, w przeciwnym razie czasami program dałby nieoczekiwany wynik.