函数调用栈一般是从高地址向低地址增加的
栈底:高地址
栈顶:低地址
函数调用栈中存储的数据为活动记录
程序中的栈空间可以看做一个顺序栈
栈溢出通常是由于函数递归过深或局部数组过大造成
递归将大型复杂问题转化为与原问题相同但规模较小的问题进行处理。(找递推关系式 )
递归需要有边界条件:
当不满足边界条件时,递归继续进行
当满足边界条件时,递归停止
递归函数要一直走到一个临界点上才能计算出结果。
所有递归算法都可以借助堆栈转换成循环结构的非递归算法。
递归方式逆序字符串
#include <stdio.h> void reverse(char* s) { if( (s != NULL) && (*s != '