Страницы

Поиск по вопросам

среда, 4 декабря 2019 г.

Что возвращает рекурсивная функция если в ней нет оператора return

#cpp


Что возвращает рекурсивная функция если в ней нет оператора return в отдельном предложении. 

int Recur(int i = 0)
{
    if (i != 3) return Recur(++i);
}

    


Ответы

Ответ 1



Если функция, возвращаемый тип который отличен от void, за исключением функции main, заканчивается без выражения return, то получается Неопределённое Поведение: 9.6.3 The return statement [stmt.return] Flowing off the end of a constructor, a destructor, or a function with a cv void return type is equivalent to a return with no operand. Otherwise, flowing off the end of a function other than main (6.6.1) results in undefined behavior. Исключение для main сделано специально. Эта функция может неявно возвращать 0 даже при отсутствии return 0; или игнорировать явно возвращаемое значение, если того требует платформа.

Комментариев нет:

Отправить комментарий