Лекция: 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 инициализируются значениями один раз при первом вызове функции Srednee. Затем их значения изменяются, и эти измененные значения после завершения работы функции сохраняются до ее следующего вызова.

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

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

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

еще рефераты
Еще работы по информатике