C语言 递归中 return语句的是否使用问题

Python017

C语言 递归中 return语句的是否使用问题,第1张

return 用于结束函数调用,从函数中返回

函数中所有语句执行完后,自然返回上一级,如无返回值没有必要写上return 语句,但写上也可以

void go(n)

{

if(n==1){

}

else{

go(--n)

return /*可以有return,由于这里所有语句已经执行完毕,没有return也会自然返回*/ }

}

既然你结构体变量是函数的参数,要递归,那么你应该直接使用传参的结构体struct Compx result,而不是函数内定义的局部变量s。

如果要用局部变量s,那也应该把s改成静态局部变量,这样才不会重复初始化。

return 0就是向调用者返回数字0

digui函数是:

n如果是0,就返回0,不做其他的事情。

n如果小于5,输出 n ,并递归调用digui,并且n加1

你想啊,当n的值变为0的时候,就返回0,就不会继续递归调用digui函数了,那个函数就停止了。结果就是输出-5,-4,-3,-2,-1

现在把if(n==0) return 0;注释掉,就没有n是0的判断,一直等到n>=5才停止调用函数digui,所以,一直会输出到4为止