![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Область видимости и время жизни при рекурсии. [D7, WinXP]
John Doe © (2005-11-07 09:31:00)Вот код:
procedure MyProc(n);
var i: Integer;
begin
if n<>2 then MyProc(n-1);
for i:=1 to n-1 do
begin
.....
.....
if n<>2 then MyProc(n-1) else Exit;
....
....
end;
end;
У меня там в цикле - рекурсия,и появился вопрос...
А запоминает ли прога значение i,для каждой вложенной процедуры,либо значение i перекрывается соответствующим значением,при следующем шаге рекурсии.
То есть значение i для MyProc(n),не будет ли затерто,при вызове MyProc(n-1) внутри MyProc(n)?
Учитывая что переменная i обьявлена не глобальной,а локальной.
John Doe (2005-11-07 10:52:00) [1]Ясно.
Спасибо.
Anatoly Podgoretsky (2005-11-07 09:36:00) [2]Область видимости ограничивается данной процедурой, это локальная переменная, сколько раз войдешь в данную функцию, столько локальных переменных и получишь.