Вопросы к Поиску с Алисой
Статические переменные хранятся в разных сегментах памяти с некоторыми особенностями:
Сегмент данных. www.geeksforgeeks.org popovfed.github.io Делится на два подтипа: popovfed.github.io
Сегмент инициализированных данных. popovfed.github.io Здесь хранятся глобальные и статические переменные, которые инициализированы значениями, отличными от нуля. popovfed.github.io Эти переменные сохраняют свои значения на протяжении всего выполнения программы. popovfed.github.io
Сегмент неинициализированных данных (BSS Segment). www.geeksforgeeks.org popovfed.github.io Здесь хранятся глобальные и статические переменные, которые инициализированы значениями по умолчанию (обычно нулями). popovfed.github.io
Сегмент стека. www.geeksforgeeks.org popovfed.github.io Используется для хранения локальных переменных, параметров функций и адресов возврата. popovfed.github.io Стек работает по принципу LIFO (Last In, First Out). popovfed.github.io Когда вызывается функция, её параметры и локальные переменные помещаются в стек. popovfed.github.io Когда функция завершает выполнение, эти данные удаляются из стека. popovfed.github.io
Сегмент кучи. www.geeksforgeeks.org popovfed.github.io Используется для динамического распределения памяти. popovfed.github.io Память в куче выделяется и освобождается вручную с помощью операторов new и delete в C++. popovfed.github.io
Статические переменные размещаются ещё во время компиляции, их адреса неизменны всё время работы программы. dzen.ru