Statinis yra raktinis žodis, naudojamas C programavimo kalboje. Jis gali būti naudojamas ir su kintamaisiais, ir su funkcijomis, ty galime deklaruoti ir statinį kintamąjį, ir statinę funkciją. Įprastas kintamasis yra apribotas ta apimtimi, kurioje jis yra apibrėžtas, o statinio kintamojo apimtis yra visoje programoje.
java klasės pavyzdys
Statinis raktinis žodis gali būti naudojamas šiais atvejais:
Kai pasaulinis kintamasis deklaruojamas statiniu raktiniu žodžiu, jis vadinamas statiniu visuotiniu kintamuoju. Jis deklaruojamas programos viršuje ir matomas visoje programoje.
Kai funkcija deklaruojama naudojant statinį raktinį žodį, žinomą kaip statinė funkcija. Jo galiojimo laikas yra visas programos laikas.
Kai vietinis kintamasis deklaruojamas statiniu raktiniu žodžiu, jis vadinamas statiniu vietiniu kintamuoju. Statinio vietinio kintamojo atmintis galioja visoje programoje, tačiau kintamojo matomumo sritis yra tokia pati kaip ir automatinių vietinių kintamųjų. Tačiau, kai funkcija pakeičia statinį vietinį kintamąjį pirmojo funkcijos iškvietimo metu, ši pakeista reikšmė bus prieinama ir kitam funkcijos iškvietimui.
Kai narių kintamieji klasėje deklaruojami su statiniu raktiniu žodžiu, tai vadinama statiniais narių kintamaisiais. Juos gali pasiekti visi klasės egzemplioriai, o ne konkretus egzempliorius.
Klasės nario funkcija, deklaruota statiniu raktiniu žodžiu, yra žinoma kaip statinis metodas. Jį gali pasiekti visi klasės egzemplioriai, o ne konkretus egzempliorius.
Supraskime per pavyzdį.
#include int main() { printf('%d',func()); printf(' %d',func()); return 0; } int func() { int count=0; // variable initialization count++; // incrementing counter variable return count; }
Aukščiau pateiktame kode iškviečiama funkcija func(). Func () skaičiaus kintamasis atnaujinamas. Kai tik funkcija baigs vykdyti, skaičiavimo kintamojo atmintis bus pašalinta. Jei nenorime pašalinti skaičiaus iš atminties, turime naudoti skaičiaus kintamąjį kaip statinį. Jei paskelbsime kintamąjį kaip statinį, kintamasis nebus pašalintas iš atminties net tada, kai funkcija baigs vykdyti.
Išvestis
1 1
Statinis kintamasis
Statinis kintamasis yra kintamasis, kuris išlaiko savo vertę įvairiuose funkcijų iškvietimuose.
Sintaksė
Statinio kintamojo sintaksė pateikta žemiau:
static data_type variable_name;
Pažvelkime į paprastą statinio kintamojo pavyzdį.
#include int main() { printf('%d',func()); printf(' %d',func()); return 0; } int func() { static int count=0; count++; return count; }
Aukščiau pateiktame kode skaičiavimo kintamąjį paskelbėme kaip statinį. Kai iškviečiamas func(), count reikšmė atnaujinama iki 1, o kito funkcijos iškvietimo metu count kintamojo reikšmė tampa 2. Todėl galime sakyti, kad statinio kintamojo reikšmė išlieka funkcijos iškvietime. .
Išvestis
1 2
Statinė funkcija
Kaip žinome, kad nestatinės funkcijos pagal numatytuosius nustatymus yra globalios, tai reiškia, kad funkcija gali būti pasiekiama ir už failo ribų, tačiau jei deklaruojame funkciją kaip statinę, tai apriboja funkcijos apimtį. Statinę funkciją galima pasiekti tik faile.
Statinė funkcija atrodytų taip:
static void func() { printf('Hello javaTpoint'); }
Skirtumai b/w statinis ir globalus kintamasis
Visuotiniai kintamieji yra kintamieji, kurie deklaruojami už funkcijos ribų. Šie pasauliniai kintamieji egzistuoja programos pradžioje, o jų apimtis išlieka iki programos pabaigos. Jį galima pasiekti ir už programos ribų.
Statiniai kintamieji apsiriboja šaltinio failu, kuriame jie yra apibrėžti, t. y. jų nepasiekia kiti šaltinio failai.
Tiek statiniai, tiek globalūs kintamieji turi statinę iniciaciją. Čia statinis inicijavimas reiškia, kad jei kintamajam nepriskirsime jokios reikšmės, pagal numatytuosius nustatymus kintamajam bus priskirta 0 reikšmė.
Skirtumai b/w statinis vietinis ir statinis pasaulinis kintamasis
Statinis pasaulinis kintamasis
Jei kintamasis deklaruojamas naudojant statinį raktinį žodį, esantį už funkcijos ribų, tada jis vadinamas statiniu visuotiniu kintamuoju. Jis pasiekiamas visoje programoje.
Statinis vietinis kintamasis
Kintamasis su statiniu raktiniu žodžiu deklaruojamas funkcijoje, žinomas kaip statinis vietinis kintamasis. Statinio vietinio kintamojo apimtis bus tokia pati kaip ir automatinių vietinių kintamųjų, tačiau jo atmintis bus prieinama viso programos vykdymo metu. Kai funkcija pakeičia statinio vietinio kintamojo reikšmę vieno funkcijos iškvietimo metu, ji išliks tokia pati net ir kito funkcijos iškvietimo metu.
Statinio kintamojo savybės
Toliau pateikiamos statinio kintamojo savybės:
- Statinio kintamojo atmintis yra skirta statiniam kintamajam.
- Jos atmintis yra prieinama visoje programoje, tačiau apimtis išliks tokia pati kaip ir automatinių vietinių kintamųjų. Jo
- reikšmė išliks per įvairius funkcijų iškvietimus.
- Jei kintamajam nepriskirsime jokios reikšmės, tada numatytoji reikšmė bus 0.
- Visuotinio statinio kintamojo negalima pasiekti už programos ribų, o visuotinį kintamąjį gali pasiekti kiti šaltinio failai.