Dowiedz się o zmiennej statycznej w C [z przykładem kodowania]
Opublikowany: 2020-10-21W swojej podróży programistycznej mogłeś pracować z większością zmiennych. Są bardzo ważnym aspektem dla każdego programisty, ponieważ zadeklarowanie zmiennej określa jej rozmiar, układ, zakres wartości przechowywanych w pamięci oraz zestaw operacji, które zostaną na niej zastosowane. Jest to nazwa nadana obszarowi pamięci, którą program może manipulować. W tym artykule omówimy jedną z najważniejszych zmiennych w C, czyli zmienną statyczną .
Słowo kluczowe w języku C jest używane dość często. Jedną z rzeczy, które są często mylone przez większość programistów, jest to, jak zmienne lokalne i globalne wpływają na statykę. W każdym przypadku słowo kluczowe static działa inaczej pod względem miejsca przechowywania danych i sposobu ich zachowania w całym programie. Poniżej przedstawiono główne zastosowania statycznego słowa kluczowego:
i. Zmienna lokalna w funkcji lub statycznej zmiennej lokalnej: Widoczność jest taka sama jak w przypadku automatycznych zmiennych lokalnych.
ii. Zmienna globalna w module lub statyczna zmienna globalna: Zadeklarowana na początku programu.
iii. Funkcja w module lub funkcja statyczna: istnieje w całym programie.
iv. Zmienna składowa lub statyczna zmienna składowa: Dostęp do wszystkich wystąpień klasy.

v. Metoda lub metoda statyczna: Dostęp do wszystkich wystąpień klasy.
Przyjrzymy się wszystkim trzem przypadkom użycia i temu, jak zmieniają się wraz z obszarem przechowywania zmiennej i poprawiają jakość kodu.
Spis treści
Co to jest zmienna statyczna?
W programowaniu zmienna statyczna to ta, która jest alokowana „statycznie”, co oznacza, że jej czas życia trwa przez cały czas działania programu. Jest deklarowany za pomocą słowa kluczowego „static” i utrzymuje swoją wartość w wywołaniach funkcji.
Składnia:
Składnia zmiennej statycznej to:
statyczny typ_danych nazwa_zmiennej;
Deklaracja zmiennej statycznej
Po zadeklarowaniu zmiennej statycznej tworzona jest jej kopia. Głównym celem ich użycia zamiast zmiennej lokalnej jest zachowanie wartości przypisanej w zakresie, w którym jest ona obecna. Programista nie musi wielokrotnie inicjować zmiennej w nowym zakresie programu. Istnieje przez cały program.
Ogólnie rzecz biorąc, statyczny jest specyfikatorem klasy pamięci masowej stosowanym do dowolnego typu danych. Nakazuje kompilatorowi ograniczenie zmiennej lub funkcji w zakresie programu i utrzymuje się przez cały czas życia programu. Ta właściwość umożliwia hermetyzację lub ukrycie zmiennych statycznych z reszty programu, zapobiegając niezamierzonemu dostępowi. Deweloper może kontrolować sposób uzyskiwania dostępu do zmiennych w module. To dobra praktyka programistyczna.
Przeczytaj: ponad 130 najlepszych pytań i odpowiedzi na wywiad dotyczący języka Java
Zmienna statyczna w programie
· Zmienna statyczna pozostaje w przestrzeni pamięci podczas wykonywania całego kodu.
· Domyślna wartość inicjująca zmiennej statycznej wynosi zero, nawet jeśli nie jest przypisana, co nie ma miejsca w przypadku zmiennej lokalnej.
· Obowiązkowe jest zainicjowanie zmiennej statycznej za pomocą słowa kluczowego static w C , w przeciwnym razie zwróci błąd.
· Zmienna statyczna jest inicjowana tylko przy pierwszym wywołaniu funkcji.
· W zmiennej statycznej alokowana jest pamięć zmiennej statycznej .
· Globalna zmienna statyczna nie jest dostępna poza programem.

Podstawowy program na zmiennej statycznej w C
#włącz <stdio.h>
int main()
{
printf(“%d”,func());
printf(„\n%d”,func());
zwróć 0;
}
int func()
{
statyczny liczba int =0;
liczyć++;
liczba zwrotów ;
}
W tym kodzie zmienna count jest zadeklarowana jako zmienna statyczna . Przy każdym wywołaniu funkcji func() wartość count jest aktualizowana do 1. W następnym wywołaniu funkcji wartość zmiennej count wynosi 2. W ten sposób wartość zmiennej statycznej pozostaje w wywołaniu funkcji.
Wyjście:
1
2
Różnica między zmienną lokalną a statyczną
W programie zamiennie używane są zmienne lokalne i statyczne. Oto kilka kluczowych różnic między nimi:
Punkty wyróżniające | Zmienna lokalna | Zmienna statyczna |
Deklaracja słowa kluczowego zmiennej | 1. Jest deklarowana przez zmienną automatyczną, np. int a = 1. | 1. Jest deklarowana przez zmienną statyczną , np. static int a = 1. |
Deklaracja zmiennej | 2. Jest zadeklarowany wewnątrz funkcji. | 2. Jest deklarowany wewnątrz lub na zewnątrz funkcji. |
Tworzenie zmiennych | 3. Jest tworzony przy każdym wywołaniu funkcji. | 3. Jest tworzony tylko dla pierwszego wywołania funkcji i ta sama zmienna jest używana do dalszego wywołania. |
Inicjalizacja zmiennych | 4. Jest inicjowany przy każdym wywołaniu funkcji. | 4. Jest inicjowany tylko raz w programie. |
Zmienna wartość domyślna | 5. Jeśli nie jest zainicjowany, wartość śmieci jest przechowywana w zmiennej. | 5. Jeśli nie jest zainicjowany, wartość 0 jest domyślnie przechowywana jako statyczna. |
Zmienne zakończenie | 6. Zakończenie funkcji powoduje jej zakończenie. | 6. Jeśli jest zadeklarowany wewnątrz funkcji, jest dostępny tylko w tej funkcji. Zakres jest ograniczony do tej funkcji, a jej czas życia trwa do zakończenia programu. Jeśli zadeklarowana poza funkcją, zmienna będzie globalna i będzie dostępna dla dowolnej funkcji w pliku. Zakresem jest plik, ale okres istnienia trwa do zakończenia programu. |
Dzięki tej tabeli jest jasne, dlaczego zmienne statyczne są preferowane od zmiennych lokalnych.
Kod zawierający zarówno zmienną lokalną, jak i statyczną
#włącz <stdio.h>
int main() {
auto int a = -15;
statyczny int b = 5;
printf("Wartość zmiennej auto a wynosi %d\n", a);
printf("Wartość zmiennej statycznej b wynosi %d\n",b);
jeśli(a!=0)
printf(„Suma zmiennej statycznej i automatycznej wynosi %d\n”,(b+a));
zwróć 0;
}
Wyjście programu:
Wartość zmiennej auto to -15

Wartość zmiennej statycznej wynosi 5
Suma zmiennej statycznej i automatycznej wynosi -10
Przeczytaj także: Pomysły na projekty C
Streszczenie
Słowo kluczowe static jest powszechnie używane w wielu funkcjach, które oferuje w programowaniu w C. Jego głównym zastosowaniem jest ograniczenie zakresu zmiennych zdefiniowanych w funkcji lub module. Deweloperzy mogą doświadczyć bezpieczeństwa, ponieważ zmienne i funkcje można ukryć przed zewnętrznym programem za pomocą zmiennej statycznej . W wielu nowoczesnych językach zorientowanych obiektowo użycie języka statycznego jest zastępowane przez język prywatny i publiczny.
Jeśli chcesz dowiedzieć się więcej i potrzebujesz mentoringu ze strony ekspertów branżowych, zapoznaj się z dyplomem PG upGrad i IIIT Banglore w zakresie programowania pełnego stosu .