Dowiedz się o zmiennej statycznej w C [z przykładem kodowania]

Opublikowany: 2020-10-21

W 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 .

Przygotuj się na karierę przyszłości

BRANŻOWE ZAUFANIE NAUKI - CERTYFIKACJA UZNANA W BRANŻY.
Zapisz się dzisiaj