#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; или игнорировать явно возвращаемое значение, если того требует платформа.
Комментариев нет:
Отправить комментарий