Sobes.tech
Back to questions
Junior — Middle
86

Как использование ключевого слова static влияет на области видимости и lifetime локальных переменных в программе?

Companies where asked
ГК Адепт

Answer from AI

sobes.tech AI

Ключевое слово static при объявлении локальной переменной в функции изменяет время жизни и область видимости этой переменной.

  • Область видимости: переменная остается локальной для функции, то есть доступна только внутри этой функции.
  • Время жизни (lifetime): переменная существует на протяжении всего времени выполнения программы, а не только во время вызова функции.

Это означает, что значение такой переменной сохраняется между вызовами функции.

Пример:

#include <stdio.h>

void func() {
    static int count = 0; // инициализация происходит один раз
    count++;
    printf("Count: %d\n", count);
}

int main() {
    func(); // Count: 1
    func(); // Count: 2
    func(); // Count: 3
    return 0;
}

В этом примере переменная count сохраняет своё значение между вызовами func благодаря static.