Co to jest zmienna?
Zmienna to nazwa przypisana do obszaru pamięci, którym program może manipulować. Typ zmiennej określa rozmiar i układ pamięci zmiennej.
Określa również zakres wartości, które muszą być przechowywane w tej pamięci i charakter operacji, które można zastosować do tej zmiennej.
W tym samouczku dowiesz się
- Zakres zmiennych
- Definicja zmiennej lokalnej
- Definicja zmiennej globalnej
- Zmienna lokalna a zmienne globalne
- Zalety stosowania zmiennych globalnych
- Zalety stosowania zmiennych lokalnych
- Wady używania zmiennych globalnych
- Wady stosowania zmiennych lokalnych
- Co jest bardziej przydatne?
Zakres zmiennych
Zakres zmiennej to po prostu czas życia zmiennej. Jest to blok kodu, w ramach którego zmienna ma zastosowanie lub żyje. Na przykład:
function foo(){var x;}
Deklarujesz zmienną „x” wewnątrz funkcji „foo”. Zakres tej zmiennej pozostaje wewnątrz tej funkcji, nie można jej używać poza tą funkcją.
Istnieją trzy miejsca, w których zmienne można zadeklarować zmienny język programowania:
- Wewnątrz funkcji lub bloku: zmienne lokalne
- Poza wszystkimi funkcjami: zmienne globalne
- W definicji parametrów funkcji: Parametry formalne
KLUCZOWA RÓŻNICA
- Zmienna lokalna jest deklarowana wewnątrz funkcji, natomiast zmienna globalna jest deklarowana poza funkcją.
- Zmienne lokalne są tworzone, gdy funkcja rozpoczęła wykonywanie i są tracone po zakończeniu funkcji, z drugiej strony zmienna globalna jest tworzona w momencie rozpoczęcia wykonywania i jest tracona po zakończeniu programu.
- Zmienna lokalna nie zapewnia udostępniania danych, podczas gdy zmienna globalna zapewnia udostępnianie danych.
- Zmienne lokalne są przechowywane na stosie, podczas gdy zmienne globalne są przechowywane w stałej lokalizacji określonej przez kompilator.
- Przekazywanie parametrów jest wymagane w przypadku zmiennych lokalnych, natomiast nie jest konieczne w przypadku zmiennej globalnej
Zmienna lokalna
Zmienna lokalna jest zdefiniowana jako typ zmiennej zadeklarowanej w bloku programowania lub podprogramach. Może być używany tylko wewnątrz podprogramu lub bloku kodu, w którym jest zadeklarowany. Zmienna lokalna istnieje do momentu wykonania bloku funkcji. Po tym zostanie automatycznie zniszczony.
Przykład zmiennej lokalnej
public int add(){int a =4;int b=5;return a+b;}
Tutaj „a” i „b” są zmiennymi lokalnymi
Zmienna globalna
Globalna zmienna w programie jest zmienna zdefiniowana poza podprogramu lub funkcji. Ma zasięg globalny, co oznacza, że zachowuje swoją wartość przez cały czas trwania programu. W związku z tym można uzyskać do niego dostęp w całym programie za pomocą dowolnej funkcji zdefiniowanej w programie, chyba że jest ona przesłaniana.
Przykład:
int a =4;int b=5;public int add(){return a+b;}
Tutaj „a” i „b” to zmienne globalne.
Zmienna lokalna vs. Zmienne globalne
Oto kilka podstawowych różnic między zmiennymi lokalnymi i globalnymi.
Parametr | Lokalny | Światowy |
---|---|---|
Zakres | Jest zadeklarowana wewnątrz funkcji. | Jest deklarowana poza funkcją. |
Wartość | Jeśli nie jest zainicjowany, przechowywana jest wartość śmieci | Jeśli nie jest zainicjowany, domyślnie zapisywane jest zero. |
Dożywotni | Jest tworzony, gdy funkcja rozpoczyna wykonywanie i tracony, gdy funkcje się kończą. | Jest tworzony przed rozpoczęciem globalnego wykonywania programu i tracony po zakończeniu programu. |
Udostępnianie danych | Udostępnianie danych nie jest możliwe, ponieważ do danych zmiennej lokalnej można uzyskać dostęp tylko za pomocą jednej funkcji. | Udostępnianie danych jest możliwe, ponieważ wiele funkcji może mieć dostęp do tej samej zmiennej globalnej. |
Parametry | Przekazywanie parametrów jest wymagane, aby zmienne lokalne miały dostęp do wartości w innej funkcji | Przekazywanie parametrów nie jest konieczne w przypadku zmiennej globalnej, ponieważ jest ona widoczna w całym programie |
Modyfikacja wartości zmiennej | Gdy wartość zmiennej lokalnej jest modyfikowana w jednej funkcji, zmiany nie są widoczne w innej funkcji. | Gdy wartość zmiennej globalnej jest modyfikowana w jednej funkcji, zmiany widoczne są w pozostałej części programu. |
Dostęp przez | Dostęp do zmiennych lokalnych można uzyskać za pomocą instrukcji wewnątrz funkcji, w której są zadeklarowane. | Dostęp do zmiennych globalnych można uzyskać za pomocą dowolnej instrukcji w programie. |
Pamięć masowa | Jest przechowywany na stosie, chyba że określono inaczej. | Jest przechowywany w stałej lokalizacji określonej przez kompilator. |
Zalety stosowania zmiennych globalnych
- Dostęp do zmiennej globalnej można uzyskać ze wszystkich funkcji lub modułów w programie
- Wystarczy tylko raz zadeklarować zmienną globalną poza modułami.
- Idealnie nadaje się do przechowywania „stałych”, ponieważ pomaga zachować spójność.
- Zmienna globalna jest przydatna, gdy wiele funkcji uzyskuje dostęp do tych samych danych.
Zalety stosowania zmiennych lokalnych
- Użycie zmiennych lokalnych daje gwarancję, że wartości zmiennych pozostaną nienaruszone podczas wykonywania zadania
- Jeśli kilka zadań zmienia jedną działającą jednocześnie zmienną, wynik może być nieprzewidywalny. Jednak zadeklarowanie go jako zmiennej lokalnej rozwiązuje ten problem, ponieważ każde zadanie utworzy własną instancję zmiennej lokalnej.
- Możesz nadać zmiennym lokalnym tę samą nazwę w różnych funkcjach, ponieważ są one rozpoznawane tylko przez funkcję, w której są zadeklarowane.
- Zmienne lokalne są usuwane po zakończeniu dowolnej funkcji i zwalniają zajmowaną przez nie przestrzeń pamięci.
Wady używania zmiennych globalnych
- Zbyt wiele zmiennych zadeklarowanych jako globalne pozostaje w pamięci do zakończenia wykonywania programu. Może to być przyczyną problemu braku pamięci.
- Dane można modyfikować za pomocą dowolnej funkcji. Każda instrukcja zapisana w programie może zmienić wartość zmiennej globalnej. Może to dać nieprzewidywalne rezultaty w środowiskach wielozadaniowych.
- Jeśli zmienne globalne zostaną wycofane z powodu refaktoryzacji kodu, będziesz musiał zmienić wszystkie moduły, w których są wywoływane.
Wady stosowania zmiennych lokalnych
- Proces debugowania zmiennej lokalnej jest dość skomplikowany.
- Wspólne dane muszą być przekazywane wielokrotnie, ponieważ udostępnianie danych między modułami nie jest możliwe.
- Mają bardzo ograniczony zakres.
Co jest bardziej przydatne?
Zmienna lokalna i globalna równie ważna podczas pisania programu w dowolnym języku. Jednak duża liczba zmiennych globalnych może zajmować ogromną pamięć. Niepożądana zmiana zmiennych globalnych staje się trudna do zidentyfikowania. Dlatego zaleca się unikanie deklarowania niepożądanych zmiennych globalnych.