小编Las*_*959的帖子

是否有必要将 return 置于 void 递归中?

如果问题已经问过,请随意将此帖子作为重复,我还没有找到与此相同的帖子

据我所知,没有必要returnvoid 函数中,例如:

void ex () {printf ("Hi\n");}
Run Code Online (Sandbox Code Playgroud)

但是,是不是很好,如果没有return一个void 递归?我在想的是,程序会一直调用func (num-1)直到它到达0并返回,所以它不会打印0到输出,我需要return在函数的末尾,所以在递归调用完成后,你回到以前的func ()直接呼叫者。

这是代码,

#include <stdio.h>

void func (int num)
{
    if (!num) return;
    func (num-1);
    printf ("%d\n", num);

    return;             //Is it necessary to put return here?
}

int main ()
{
    func (10);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出,

1
2
3
4
5
6
7
8
9
10

Run Code Online (Sandbox Code Playgroud)

没有 last return,它也可以正常工作,还是我错过了什么?

c recursion

3
推荐指数
1
解决办法
147
查看次数

标签 统计

c ×1

recursion ×1