Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Double Srednee ( int n );



Int main ()

{

setlocale (0, "");

Int n;

Do

{

cin >> n;

if (n >= 0)

cout << "Среднее значение: " << Srednee (n);

cout << endl;

}

while (n >= 0);

Return 0;

}

Double Srednee (int n)

{

static int Sum = 0, Count = 0;

++ Count;

Sum += n;

return double (Sum) / Count;

}

Локальные static- переменные Sum и Count инициализируются значениями 0 один раз при первом вызове функции Srednee. Затем их значения изменяются, и эти измененные значения после завершения работы функции сохраняются до ее следующего вызова.

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

Внешние static- переменные определяются вне функций. Они, так же как и локальные static- переменные имеют глобальное время жизни. Но их область видимости ограничена файлом проекта, в котором они определены (они могут быть доступны только в функциях, расположенных в этом же файле и не видны из других файлов проекта). Таким образом, их можно рассматривать как глобальные переменные с областью видимости, ограниченной файлом, в котором они определены.

Спецификатор static можно применять и к функциям.





Дата публикования: 2014-11-28; Прочитано: 203 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...