如果问题已经问过,请随意将此帖子作为重复,我还没有找到与此相同的帖子
据我所知,没有必要return在void 函数中,例如:
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,它也可以正常工作,还是我错过了什么?
具有返回类型的函数void不需要显式return. 简单地到达函数的末尾将正确返回。
对于也是递归的 void 函数也没有什么不同。return函数中的第一个是必需的,因为您希望它在到达函数末尾之前返回,但第二个不是必需的。