Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Давайте теперь слегка изменим определение переменных в функции doit(), с тем чтобы создать статическую переменную:
staticintstatvar = 0;При выполнении программы со статической переменной мы получим следующий результат:
значение autovar равно 0 значение statvar равно 0значение autovar равно 0 значение statvar равно 1значение autovar равно 0 значение statvar равно 2значение autovar равно 0 значение statvar равно 3При первом выполнении функции переменной statvar присваивается начальное значение, равное 0. Однако statvar определена как статическая переменная, что указывает компилятору на необходимость сохранения в памяти присвоенного ей значения и после завершения работы функции. Поэтому после первого завершения работы функции переменная statvar будет иметь значение, равное 1, которое получается благодаря инструкции ++statvar;. При следующем вызове функции исходным значением переменной является сохраненное за ней значение1 и поэтому присваивания ей 0 в качестве начального значения не производится.
Каждый раз во время выполнения функции значение переменной увеличивается, и это новое значение сохраняется за переменной при очередном вызове функции.
Дата публикования: 2015-07-22; Прочитано: 146 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!