源文件
#include <stdio.h>
void reverse(char* s)
{
if((s != NULL) && (*s != '\0')){
reverse(s + 1);
printf("%c", *s);
}
}
int main()
{
reverse("12345");
printf("\n");
return 0;
}
递归调用时,入栈情况。其中main是栈低。
递归调用完成后,出栈情况。从栈顶开始出栈。并执行pirntf
最终得到的结果是54321
小结:
- 程序栈空间在本质上是一种顺序栈
- 程序栈空间的访问是通过函数调用进行的
- 程序栈空间仍然遵从后进先出的规则