Статические объекты в C++ | OTUS

Статические объекты в C++

В языке программирования C++ существует особый тип локальных объектов -- статический. Речь идет об объектах, которые определяются на уровне функций посредством ключевого слова static. Если, к примеру, автоматические переменные определяются и инициализируются во время каждого входа в функцию, то статические инициализируются лишь один раз, причем при последующих вызовах функции применяется старое значение статической переменной.

Представим, что у нас есть функция, включающая в себя стандартную автоматическую переменную:

Screenshot_1-1801-72aaf4.png

В нашем случае функция display вызывается 3 раза, причем при каждом вызове программа выделяет память для переменной i (переменная i определена в нашей функции). После завершения работы функции display память для нашей переменной i будет высвобождаться. В результате ее значение будет неизменно при каждом вызове:

Screenshot_2-1801-813767.png

Итак, с автоматической переменной все понятно. Теперь рассмотрим ситуацию, когда переменная i является статической:

Screenshot_3-1801-48109f.png

Как видно из кода выше, мы добавили к переменной ключевое слово static. Теперь при завершении работы функции display наша переменная не уничтожается, и ее память не очищается, то есть переменная сохраняется в памяти. В результате работа программы тоже изменится:

Screenshot_4-1801-d22b88.png

По материалам https://metanit.com/cpp/.

Не пропустите новые полезные статьи!

Спасибо за подписку!

Мы отправили вам письмо для подтверждения вашего email.
С уважением, OTUS!

Автор
0 комментариев
Для комментирования необходимо авторизоваться
Популярное
Сегодня тут пусто