1.auto
自动型变量、局部变量、
将变量存放在栈区
1.未经初始化值为随机值
2.执行到变量定义时开辟空间
3.执行到超过变量作用域范围回收变量空间
2. register
寄存器变量 寄存器存满了,会将变量存放到栈区(等价于auto类型)
3.extern
外部变量
如果要使用文件外的变量,要先声明该变量的名字
extern 变量类型 变量名
4.static 静态变量
变量存放在数据区
编译时开辟空间
程序结束时回收空间
可以约束变量的作用域
定义为全局变量时可以将变量的作用域限制到本文件中
可以防止多文件全局变量名冲突
5.递归函数
在函数定义时,调用函数本身
函数定义时调用函数本身
1.递归一定要有结束条件
2.避免深层次的递归
a b c
三个柱子
a柱上有n个环,环只能大在下小在上套在柱子上
现在,要把a柱子上的环全部转移到c柱子上
用递归的思想实现
a要到c,c上首先要把a最下方最大的环放在c
而要拿出来最大的就要把a上最大的上方的所有环暂存在b上,再把最大的环由a放到c
再以a为暂存,把b现在最大的取出放在c
而要实现暂存,又要递归将要暂存的环中最大的上方的环暂存到c上再,将最大的取出放到b
b,又是新的一轮递归,本质上是暂存,目的,和初始柱子的交换。