Урок 11.4. Статические переменные

11.4. Статические переменные

Слово "статические" здесь означает, что переменные остаются в
работе. Они имеют такую же область действия, как автоматические переменные, но
они не исчезают, когда содержащая их функция закончит свою работу. Их значения
сохраняются от одного вызова функции до другого. Описателем для них является
слово static. Например,
вследущейпрограмме

main()

{ int count;

for (count=1;count<=3;count++)

trystat();

}

trystat()

{ int fade=1;

static int stat=1;

fade++;stat++;

}

функция trystat() вызывается трижды. При этом, значение
статической переменной stat квждый раз увеличивается на единицу, в то время как
для переменной fade начальное значение устанавливается каждый раз
заново. Иными словами, переменная fade
инициализируется каждый раз, когда вызывается trystat(), а переменная stat только один раз при компиляции функции trystat(). Статическая переменная может быть внутренней
или внешней. Внутренние статические переменные локальны по отношению к
отдельной функции, они являются собственной, постоянной памятью для нее.

Статические переменные можно также описывать вне любой функции, что
создает внешние статические переменные. Разница между внешней переменной и
внешней статической переменной заключается в области их действия. Обычно
внешняя переменная может использоваться функциями в любом файле, в то время как
внешняя статическая переменная может использоваться только функциями того же
самого файла, причем после определения переменных.

Функции обычно являются внешними объектами; их имена известны везде ( они
глобальные ). Однако можно описать функцию как статическую : это приведет к
тому, что ее имя будет неизвестно вне файла, где она описана.

рассказать друзьям и получить подарок

Оставить комментарий

Ваш email не будет опубликован. Обязательные поля отмечены *

Вы можете использовать это HTMLтеги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Translate Переводчик

Подписка на новости

SmartResponder.ru
Ваш e-mail: *
Ваше имя: *

Хостинг для Wordpress сайтов