HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-03-10
1 <p>Теги: функция, переменные, static, статический тип объектов</p>
1 <p>Теги: функция, переменные, static, статический тип объектов</p>
2 <p>В языке программирования C++ существует особый тип локальных объектов --<strong>статический</strong>. Речь идет об объектах, которые определяются на уровне функций посредством ключевого слова<strong>static</strong>. Если, к примеру, автоматические переменные определяются и инициализируются во время каждого входа в функцию, то статические инициализируются лишь один раз, причем при последующих вызовах функции применяется старое значение статической переменной.</p>
2 <p>В языке программирования C++ существует особый тип локальных объектов --<strong>статический</strong>. Речь идет об объектах, которые определяются на уровне функций посредством ключевого слова<strong>static</strong>. Если, к примеру, автоматические переменные определяются и инициализируются во время каждого входа в функцию, то статические инициализируются лишь один раз, причем при последующих вызовах функции применяется старое значение статической переменной.</p>
3 <p>Представим, что у нас есть функция, включающая в себя стандартную<strong>автоматическую переменную</strong>:</p>
3 <p>Представим, что у нас есть функция, включающая в себя стандартную<strong>автоматическую переменную</strong>:</p>
4 <p>В нашем случае функция<em>display</em>вызывается 3 раза, причем при каждом вызове программа выделяет память для переменной<em>i</em>(переменная<em>i</em>определена в нашей функции). После завершения работы функции<em>display</em>память для нашей переменной i будет высвобождаться. В результате ее значение будет неизменно при каждом вызове:</p>
4 <p>В нашем случае функция<em>display</em>вызывается 3 раза, причем при каждом вызове программа выделяет память для переменной<em>i</em>(переменная<em>i</em>определена в нашей функции). После завершения работы функции<em>display</em>память для нашей переменной i будет высвобождаться. В результате ее значение будет неизменно при каждом вызове:</p>
5 <p>Итак, с автоматической переменной все понятно. Теперь рассмотрим ситуацию, когда переменная<em>i</em>является<strong>статической</strong>:</p>
5 <p>Итак, с автоматической переменной все понятно. Теперь рассмотрим ситуацию, когда переменная<em>i</em>является<strong>статической</strong>:</p>
6 <p>Как видно из кода выше, мы добавили к переменной ключевое слово<strong>static</strong>. Теперь при завершении работы функции<em>display</em>наша переменная не уничтожается, и ее память не очищается, то есть переменная сохраняется в памяти. В результате работа программы тоже изменится:</p>
6 <p>Как видно из кода выше, мы добавили к переменной ключевое слово<strong>static</strong>. Теперь при завершении работы функции<em>display</em>наша переменная не уничтожается, и ее память не очищается, то есть переменная сохраняется в памяти. В результате работа программы тоже изменится:</p>
7 <p><em>По материалам https://metanit.com/cpp/.</em></p>
7 <p><em>По материалам https://metanit.com/cpp/.</em></p>
8  
8