Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!