Static е ключова дума, използвана в езика за програмиране C. Може да се използва както с променливи, така и с функции, т.е. можем да декларираме статична променлива и статична функция. Обикновената променлива е ограничена до обхвата, в който е дефинирана, докато обхватът на статичната променлива е в цялата програма.
Статичната ключова дума може да се използва в следните ситуации:
Когато глобална променлива е декларирана със статична ключова дума, тогава тя е известна като статична глобална променлива. Декларира се в горната част на програмата и се вижда през цялата програма.
Когато дадена функция е декларирана със статична ключова дума, известна като статична функция. Неговият живот е през цялата програма.
Когато локална променлива е декларирана със статична ключова дума, тогава тя е известна като статична локална променлива. Паметта на статична локална променлива е валидна в цялата програма, но обхватът на видимост на променливата е същият като на автоматичните локални променливи. Въпреки това, когато функцията модифицира статичната локална променлива по време на първото извикване на функция, тогава тази модифицирана стойност ще бъде достъпна и за следващото извикване на функция.
Когато членните променливи са декларирани със статична ключова дума в клас, това е известно като статични членски променливи. Те могат да бъдат достъпни от всички екземпляри на клас, а не от конкретен екземпляр.
Функцията-член на клас, декларирана със статична ключова дума, е известна като статичен метод. Той е достъпен от всички екземпляри на даден клас, а не от конкретен екземпляр.
Нека разберем чрез пример.
#include int main() { printf('%d',func()); printf(' %d',func()); return 0; } int func() { int count=0; // variable initialization count++; // incrementing counter variable return count; }
В горния код се извиква функцията func(). Във func(), променливата за броене се актуализира. Веднага след като функцията завърши изпълнението си, паметта на променливата count ще бъде премахната. Ако не искаме да премахнем броя от паметта, тогава трябва да използваме променливата count като статична. Ако декларираме променливата като статична, тогава променливата няма да бъде премахната от паметта дори когато функцията завърши своето изпълнение.
Изход
1 1
Статична променлива
Статичната променлива е променлива, която запазва стойността си при различните извиквания на функции.
Синтаксис
Синтаксисът на статичната променлива е даден по-долу:
масив за сортиране в java
static data_type variable_name;
Нека да разгледаме прост пример за статична променлива.
#include int main() { printf('%d',func()); printf(' %d',func()); return 0; } int func() { static int count=0; count++; return count; }
В горния код сме декларирали променливата count като статична. Когато се извика func(), стойността на count се актуализира до 1 и по време на следващото извикване на функцията стойността на променливата count става 2. Следователно можем да кажем, че стойността на статичната променлива продължава да съществува в извикването на функцията .
Изход
1 2
Статична функция
Както знаем, че нестатичните функции са глобални по подразбиране означава, че функцията може да бъде достъпна и извън файла, но ако декларираме функцията като статична, това ограничава обхвата на функцията. Статичната функция може да бъде достъпна само във файл.
Статичната функция ще изглежда така:
static void func() { printf('Hello javaTpoint'); }
Разлики ч/б статична и глобална променлива
Глобалните променливи са променливите, които са декларирани извън функцията. Тези глобални променливи съществуват в началото на програмата и обхватът им остава до края на програмата. Може да бъде достъпен и извън програмата.
Статичните променливи са ограничени до файла източник, в който са дефинирани, т.е. те не са достъпни от другите файлове източник.
И статичните, и глобалните променливи имат статична инициализация. Тук статичната инициализация означава, че ако не присвоим никаква стойност на променливата, тогава по подразбиране на променливата ще бъде присвоена 0 стойност.
Разлики ч/б статична локална и статична глобална променлива
Статична глобална променлива
основна java
Ако променливата е декларирана със статична ключова дума извън функцията, тогава тя е известна като статична глобална променлива. Той е достъпен в цялата програма.
Статична локална променлива
Променливата със статична ключова дума е декларирана във функция и е известна като статична локална променлива. Обхватът на статичната локална променлива ще бъде същият като автоматичните локални променливи, но нейната памет ще бъде достъпна по време на изпълнението на програмата. Когато функцията промени стойността на статичната локална променлива по време на едно извикване на функция, тогава тя ще остане същата дори по време на следващото извикване на функция.
Свойства на статична променлива
Следните са свойствата на статичната променлива:
- Паметта на статична променлива се разпределя в рамките на статична променлива.
- Неговата памет е достъпна в цялата програма, но обхватът ще остане същият като автоматичните локални променливи. Това е
- стойността ще се запази при различните извиквания на функции.
- Ако не присвоим никаква стойност на променливата, тогава стойността по подразбиране ще бъде 0.
- Глобална статична променлива не може да бъде достъпна извън програмата, докато глобалната променлива може да бъде достъпна от други изходни файлове.