Różnica między zmienną lokalną i globalną

Spisie treści:

Anonim

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.