C语言递归算法是怎么执行的

#include <stdio.h>

void net(int);

int main()
{
net(1);
return 0;
}

void net(int n)
{
printf("数字%d:n的地址是:%p\n", n, &n);
if(n<4)
{
net(n+1);
printf("数字%d:n的地址是:%p\n", n, &n);
}
}

递归就是自己调用自己,例如你写的 net()函数,函数自己调用自己。
它调用自己的时候,不管程序运行到了哪,见到自己直接跳转,进入到下一个自己中运行,直到不满足跳入下一个自己的条件时,运行完当前函数,然后回到前一个自己中,回到跳出位置,继续运行没有完事的部分,直到完成当前函数,然后回到上一个自己。。。。这样直到回到第一个自己,运行开始跳出时没有完成部分的程序。这就是递归;
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-07-19
与普通函数调用类似要将参数入栈后执行。追问

能说下  那个代码怎么执行的

到n=4后  if里的语句不执行了

为什么还会倒序输出

相似回答