ВУЗ:
Составители:
Рубрика:
{
Worker stuff[100];
/* формирование массива stuff */
for(int i=0;i<100; i++)
print_worker(stuff[i]);/*вызов функции */
}
void print_worker(Worker w)//определение функции
{
cout<<w.fio<<' '<<w.date<<' '<<w.code<<' '<<
w.salary;
}
Все величины, описанные внутри функции, а также ее параметры,
являются локальными. Областью их действия является функция. При
вызове функции, как и при входе в любой блок, в стеке выделяется па-
мять под локальные автоматические переменные.
При выходе из функции соответствующий участок стека освобо-
ждается, поэтому значения локальных переменных между вызовами од-
ной и той же функции не сохраняются. Если этого требуется избежать,
при объявлении локальных переменных используется модификатор
static [1].
Пример 50
#include <iostream.h>
void f(int a)
{
cout << "n m\n";
while (a--)
{
static int n = 0;
int m = 0;
cout << n++ << ' ' << m++ << '\n';
}
}
int main()
{
f(3);
}
Статическая переменная n примера 50 размещается в сегменте дан-
ных и инициализируется один раз при первом выполнении оператора,
содержащего ее определение. Программа выведет на экран:
98
Страницы
- « первая
- ‹ предыдущая
- …
- 96
- 97
- 98
- 99
- 100
- …
- следующая ›
- последняя »
