Zmienne statyczne w C

Zmienne statyczne w C
C jest bardzo elastycznym językiem, jeśli chodzi o przydzielenie różnych zmiennych w funkcji lub poza funkcją. Zmienna statyczna jest jedną z tych zmiennych, które są „statycznie” w programie. Wartość początkowa zmiennych statycznych wynosi zero. Zmienne statyczne nadal funkcjonują podczas działania programu.

Składnia zmiennych statycznych

Poniżej znajduje się podstawowa składnia języka C do deklarowania „zmiennej statycznej”.

Podczas definiowania zmiennej statycznej możemy również ustawić jej stan początkowy. Poniżej znajduje się metoda inicjowania wartości zmiennej statycznej w języku programowania o nazwie C.

Wszędzie, gdzie obecny jest jego zakres, wartość zmiennej stałej można ponownie zintericjować. Ponowna inicjalizacja wartości zmiennej statycznej pokazano w poniższym programie. W tym programie najpierw dołączamy plik nagłówka „stdio” z rozszerzeniem „.h ”, który służy do wyświetlania wejścia i wyjścia.

#włączać
int main ()

statyczny int x = 20;
x ++;
printf („Wartość x to: %d \ n”, x);
x = 0;
printf („Po ponownej inicjalizacji wartości x to: %d \ n”, x);

Jest to podstawowy i prosty przykład zmiennych statycznych, w których zadeklarowaliśmy zmienną „x” typu danych „INT” z słowem kluczowym statycznym, co oznacza, że ​​zmienna „x” utrzyma swoją wartość poprzez wywołanie funkcji. Zainicjowaliśmy wartość „20” do zmiennej „x”, a następnie zastosowano operację przyrostową do zmiennej, aby zwiększyć wartość „x” przez 1. A następnie wydrukuj wartość „x”. Jak widać, użyliśmy „\ n” w instrukcji printf (), co oznacza złamanie linii lub wydrukowanie wyjścia w nowej linii. Następnie ponownie inicjowaliśmy wartość tej samej zmiennej „x”, która jest „0”. Następnie drukujemy ciąg napisany w podwójnych cudzysłowie.

Oto dane wyjściowe powyższej ilustracji, w której wartość „x” wynosi „21” po wdrożeniu operacji przyrostu, ale mamy inną wartość „x”, która jest „0”, ponieważ ponownie inicjowaliśmy zmienną „X” w tej samej funkcji.

Główne zastosowanie zmiennych statycznych

W tej sekcji omówimy zmienne statyczne i zmienne globalne. Każda zadeklarowana zmienna używana poza funkcją main () jest globalna. Zmienna statyczna to „statycznie” zadeklarowana, co wskazuje, że jej cykl życia lub rozszerzenie to czas trwania całego wykonania programu. Ponieważ nie są powiązane z określoną funkcją, można użyć dowolnej dostępnej metody do dostępu i modyfikowania zmiennych globalnych.

Korzystanie ze statycznego słowa kluczowego w połączeniu z funkcją: Jeśli chcemy zachować tę samą wartość dla zmiennej na każdym wywołaniu, możemy określić ją jako zmienną statyczną w funkcji. Ilekroć statyczne słowo kluczowe jest używane w metodzie, zapobiega się ponownej inicjalizacji parametru na kolejnych wywołań funkcji (na przykład, gdy jedna zmienna statyczna jest tworzona i inicjowana w ramach metody). Rozważ funkcję, która ma zmienną statyczną o nazwie „x” o wartości początkowej 20. Operator przyrostowy jest używany przez funkcję do podniesienia wartości „x” przy każdym wywołaniu metody. Proces opisano poniżej.

#włączać
Funkcja void ()

statyczny int x = 20;
x ++;
printf („%d \ n”, x);

int main ()

funkcjonować();
funkcjonować();
funkcjonować();
funkcjonować();
funkcjonować();

Zmienna „x” rozpocznie się od wartości 20, gdy ta metoda zostanie po raz pierwszy zastosowana, a następnie wzrośnie do wartości 21. Metoda będzie zatem wydrukować 21, 22, 23, 24 i 25, ponieważ nazywaliśmy funkcję 5 razy w funkcji Main (). Teraz zmienna „x” nie zostanie zresetowana do 20, jeśli wielokrotnie uruchamiamy tę metodę. Wraz z przyrostem powinno to zyskać wartość z poprzedniej rozpiętości, to znaczy 21 i stać się 22 i tak dalej. Dlatego metoda wydrukuje 22 tym razem i tak dalej, aż do ostatniego wywołania funkcji.

Jest to wyjście wyżej skompilowanej ilustracji:

Deklarowanie zmienna globalna przy użyciu zmiennej statycznej: Parametry dynamiczne można również zadeklarować globalnie. Oznacza to, że pojedynczy parametr ma zalety zarówno stałej, jak i globalnej zmiennej. Zakłady statyczne i globalne różnią się od siebie. Stały parametr ma tylko rozpiętość blokowania, podczas gdy zmienna globalna można uzyskać od dowolnego punktu programu. Program, który pokazuje sposób, w jaki jest zdefiniowany, jest następujący.

#włączać
statyczny int y = 10;
void funkcja ()
statyczny int x = 20;
x ++;
printf („zmienna statyczna to: %d”, x);

int main ()
y ++;
printf („zmienna globalna to: %d \ n”, y);
funkcjonować();

W tym przykładzie zawarliśmy niezbędne informacje o wyjściu wejściowym za pośrednictwem nazwy pliku nagłówka „Stdio.h ”, gdzie„.H ”to rozszerzenie pliku nagłówka. Następnie deklarujemy zmienną statyczną poza funkcją main (), która jest „y” liczby całkowitej. Wartość „10” jest inicjowana do zmiennej statycznej „Y”. Następnie mamy metodę o nazwie „funkcja ()”, która zostanie również zadeklarowana na całym świecie poza funkcją main (). Ta funkcja () ma zmienną statyczną „x” typu danych „INT” o wartości „20”, a następnie zaimplementowaliśmy operację przyrostu do zmiennej „x”. Następnie mamy instrukcję printf () do wydrukowania ciągu, ponieważ jest napisany w funkcji printf ().

Musimy wywołać tę funkcję po globalnym ogłoszeniu zmiennej i funkcji (). Dotarliśmy do sekcji Main () programu C, aby wywołać tę metodę. W funkcji Main () ponownie zaimplementowaliśmy operację przyrostową, ale teraz na zmiennej „y” i wydrukuj ciąg zmiennej globalnej. Następnie nazwaliśmy funkcję o nazwie „funkcja ()”, która została ogłoszona na całym świecie.

Oto wyjście globalnej ilustracji zmiennej. Po pierwsze, kompilator wykona zmienną globalną „Y”, ponieważ została ona pierwsza zadeklarowana w programie; Po wdrożeniu operacji przyrostu zmienna „y” stanie się „11”, a następnie funkcja jest wywoływana, czyli „funkcja ()”, a zmienna statyczna jest drukowana.

Wniosek

Nauczyliśmy się, jak ponownie inicjować zmienną statyczną w tej samej funkcji za pomocą prostego przykładu. Następnie omówiliśmy także, jak zadeklarować zmienną na całym świecie i jak napisać funkcję poza ciałem Main (), a następnie jak wywołać funkcję za pomocą różnych przykładów. Mam nadzieję, że ten samouczek będzie dla ciebie korzystny, gdy dowiadujesz się o zmiennych statycznych w języku programowania C.