递归调用 为啥结果是1-10 而不是10-1
#include <stdio.h>//函数的递归调用指的是调用函数本身
//正在函数递归调用时需要有函数的出口
//递归函数在占区内存中占有资源会比较多
void fun(int a)
{
//函数的出口
if(a==0) //如果if后面加的时一条语句,可以不用加括号
return;
fun(a-1);
printf("%d\n",a);
}
int main(void)
{
int a = 10;
fun(a);
return 0;
}
这个代码中的递归函数fun是从10开始递减到0的。当fun(a-1)被调用时,fun函数会再次调用自身,直到a的值为0时,递归终止。然后,递归函数从最底层开始返回,依次打印出1到10的值。
所以,结果是1-10,而不是10-1。
页:
[1]