#include<stdio.h>
void up_and_down(int);//事先告知编译器该函数存在
int main(void)
{
up_and_down(1);
return 0;
}
void up_and_down(int n)
{
printf("level:%d n的地址是:%p\n",n,&n);
if(n<4)//1,2,3
up_and_down(n+1);
printf("level:%d n的地址是:%p\n",n,&n);
}
从gdb的图中可以看出,eax大于0x3才结束递归,否则连续调用自己
下图较好的揭示递归的过程,ret几次up_and_down,后会返回main函数
原文:https://www.cnblogs.com/zuoanfengxi/p/13340610.html