请教编程高手一下····

来源:百度知道 编辑:UC知道 时间:2024/06/07 13:08:08
看不懂这段程序。。。能否解释一下 else return(fun(--a,--b));是什么意思?

#include <stdio.h>
int fun(int a,int b)
{ if(b==0) return a;
else return(fun(--a,--b));
}
main()
{ printf("%d\n",fun(4,2)); }

#include <stdio.h>
int fun(int a,int b)
{ if(b==0) return a;
else return(fun(--a,--b));
}
main()
{ printf("%d\n",fun(4,2)); }

int fun(int a,int b) {
if(b == 0) return a;
else return(fun(--a,--b));
}

如果b == 0,返回a,否则继续下一次递归。操作数是a - 1, b - 1。
事实上单就这个函数来看是有问题的,如果第一次调用,b就是个负数那该什么时候结束?