Static on C-ohjelmointikielessä käytetty avainsana. Sitä voidaan käyttää sekä muuttujien että funktioiden kanssa, eli voimme ilmoittaa myös staattisen muuttujan ja staattisen funktion. Tavallinen muuttuja on rajoitettu laajuuteen, jossa se on määritelty, kun taas staattisen muuttujan laajuus on koko ohjelman laajuus.
merkkijonojen ketjutus
Staattista avainsanaa voidaan käyttää seuraavissa tilanteissa:
Kun globaali muuttuja ilmoitetaan staattisella avainsanalla, se tunnetaan staattisena globaalina muuttujana. Se ilmoitetaan ohjelman yläosassa, ja sen näkyvyys on koko ohjelman ajan.
Kun funktio on ilmoitettu staattisella avainsanalla, joka tunnetaan staattisena funktiona. Sen käyttöikä on koko ohjelman ajan.
Kun paikallinen muuttuja ilmoitetaan staattisella avainsanalla, sitä kutsutaan staattiseksi paikalliseksi muuttujaksi. Staattisen paikallismuuttujan muisti on voimassa koko ohjelman ajan, mutta muuttujan näkyvyysalue on sama kuin automaattisten paikallismuuttujien. Kuitenkin, kun funktio muuttaa staattista paikallismuuttujaa ensimmäisen funktiokutsun aikana, tämä muokattu arvo on käytettävissä myös seuraavassa funktiokutsussa.
Kun jäsenmuuttujat on ilmoitettu luokassa staattisella avainsanalla, sitä kutsutaan staattisiksi jäsenmuuttujiksi. Niitä voivat käyttää kaikki luokan ilmentymät, eivät tietyn esiintymän kanssa.
Staattisella avainsanalla ilmoitettu luokan jäsenfunktio tunnetaan staattisena menetelmänä. Sitä voivat käyttää kaikki luokan esiintymät, ei tietyn esiintymän kanssa.
Ymmärretään esimerkin kautta.
#include int main() { printf('%d',func()); printf(' %d',func()); return 0; } int func() { int count=0; // variable initialization count++; // incrementing counter variable return count; }
Yllä olevassa koodissa kutsutaan func()-funktiota. Func() -funktiossa count-muuttuja päivitetään. Heti kun funktio on suorittanut suorituksensa, count-muuttujan muisti poistetaan. Jos emme halua poistaa laskentaa muistista, meidän on käytettävä count muuttujaa staattisena. Jos määritämme muuttujan staattiseksi, muuttujaa ei poisteta muistista, vaikka funktio olisi suorittanut suorituksensa loppuun.
Lähtö
1 1
Staattinen muuttuja
Staattinen muuttuja on muuttuja, joka säilyttää arvonsa eri funktiokutsuissa.
Syntaksi
Staattisen muuttujan syntaksi on annettu alla:
static data_type variable_name;
Katsotaanpa yksinkertaista esimerkkiä staattisesta muuttujasta.
fibonacci-sekvenssi java
#include int main() { printf('%d',func()); printf(' %d',func()); return 0; } int func() { static int count=0; count++; return count; }
Yllä olevassa koodissa olemme ilmoittaneet count muuttujan staattiseksi. Kun func() kutsutaan, countin arvoksi päivitetään 1, ja seuraavan funktiokutsun aikana count-muuttujan arvoksi tulee 2. Siksi voidaan sanoa, että staattisen muuttujan arvo säilyy funktiokutsussa .
Lähtö
1 2
Staattinen toiminto
Kuten tiedämme, että ei-staattiset funktiot ovat oletuksena globaaleja, tarkoittaa sitä, että funktioon pääsee käsiksi myös tiedoston ulkopuolelta, mutta jos funktio julistetaan staattiseksi, se rajoittaa funktion laajuutta. Staattista toimintoa voi käyttää vain tiedostossa.
Staattinen funktio näyttäisi tältä:
static void func() { printf('Hello javaTpoint'); }
Erot b/w staattinen ja globaali muuttuja
Globaalit muuttujat ovat muuttujia, jotka ilmoitetaan funktion ulkopuolella. Nämä globaalit muuttujat ovat olemassa ohjelman alussa ja niiden laajuus säilyy ohjelman loppuun asti. Sitä voi käyttää myös ohjelman ulkopuolelta.
pyspark
Staattiset muuttujat rajoittuvat siihen lähdetiedostoon, jossa ne on määritelty, eli ne eivät ole muiden lähdetiedostojen käytettävissä.
Sekä staattisilla että globaaleilla muuttujilla on staattinen alustus. Tässä staattinen alustus tarkoittaa, että jos emme anna muuttujalle mitään arvoa, muuttujalle annetaan oletusarvoisesti arvo 0.
Erot b/w staattisen paikallisen ja staattisen globaalin muuttujan välillä
Staattinen globaali muuttuja
Jos muuttuja on ilmoitettu staattisella avainsanalla funktion ulkopuolella, se tunnetaan staattisena globaalina muuttujana. Se on käytettävissä koko ohjelman ajan.
Staattinen paikallinen muuttuja
Staattisella avainsanalla varustettu muuttuja ilmoitetaan funktion sisällä, ja sitä kutsutaan staattiseksi paikalliseksi muuttujaksi. Staattisen paikallismuuttujan laajuus on sama kuin automaattisten paikallismuuttujien, mutta sen muisti on käytettävissä koko ohjelman suorittamisen ajan. Kun funktio muuttaa staattisen paikallismuuttujan arvoa yhden funktiokutsun aikana, se pysyy samana myös seuraavan funktiokutsun aikana.
Staattisen muuttujan ominaisuudet
Seuraavat ovat staattisen muuttujan ominaisuudet:
- Staattisen muuttujan muisti on varattu staattisen muuttujan sisällä.
- Sen muisti on käytettävissä koko ohjelman ajan, mutta laajuus pysyy samana kuin automaattisten paikallisten muuttujien. Sen
- arvo säilyy eri funktiokutsuissa.
- Jos emme anna muuttujalle mitään arvoa, oletusarvo on 0.
- Globaalia staattista muuttujaa ei voi käyttää ohjelman ulkopuolella, kun taas globaalia muuttujaa voidaan käyttää muilla lähdetiedostoilla.