Назад к вопросам
Junior
71
questionbank
Что такое статические переменные?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Статические переменные в программировании имеют следующие характеристики:
- Время жизни: Существуют на протяжении всей работы программы.
- Область видимости: Зависит от места их определения (могут быть локальными в функции или глобальными в рамках файла/класса).
- Инициализация: Инициализируются один раз при запуске программы (или при первом доступе, зависит от языка) и сохраняют свое значение между вызовами функций или методами класса.
- Память: Обычно хранятся в сегменте данных статически выделяемой памяти.
Примеры использования:
- Подсчет количества вызовов функции.
- Хранение общего для всех экземпляров класса состояния (в случае статических членов класса).
- Реализация паттерна Singleton.
Пример на C++:
#include <iostream>
void counter() {
static int count = 0; // Статическая локальная переменная
count++;
std::cout << "Function called " << count << " times" << std::endl;
}
int main() {
counter(); // Output: Function called 1 times
counter(); // Output: Function called 2 times
counter(); // Output: Function called 3 times
return 0;
}
Пример статического члена класса на Python:
class MyClass:
class_variable = 0 # Статическая переменная класса
def __init__(self):
MyClass.class_variable += 1
def display_count(self):
print(f"Current count: {MyClass.class_variable}")
obj1 = MyClass()
obj2 = MyClass()
obj1.display_count() # Output: Current count: 2
obj2.display_count() # Output: Current count: 2