函数中所有语句执行完后,自然返回上一级,如无返回值没有必要写上return 语句,但写上也可以
void go(n)
{
if(n==1){
}
else{
go(--n)
return /*可以有return,由于这里所有语句已经执行完毕,没有return也会自然返回*/ }
}
既然你结构体变量是函数的参数,要递归,那么你应该直接使用传参的结构体struct Compx result,而不是函数内定义的局部变量s。如果要用局部变量s,那也应该把s改成静态局部变量,这样才不会重复初始化。
return 0就是向调用者返回数字0digui函数是:
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为止