Stack Overflow на русском Asked by n 1 k z z z on January 12, 2021
У нас есть функция foo()
:
bool foo(int a)
{
if (a == 3)
{
foo(a+1);
}
return false;
}
Почему мы можем ее вызвать прямо в определении?
Вызов функции из самой себя называется рекурсией. Понятно, что для обеспечения работоспособности такого кода должно быть достижимо условие завершения рекурсии. Иначе (при заведомо ограниченном объеме памяти) программа грохнется с переполнением стека (Stack overflow).
Для С++ рекурсивный вызов разрешён для любых функций кроме main
. Ссылка на черновик стандарта:
Recursive calls are permitted, except to the
main
function
Answered by αλεχολυτ on January 12, 2021
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP