变量的作用范围
1 局部变量
1.1 举例
1.1.1 形式参数
1.1.2 定义在函数体内的变量,也成为自动变量,由关键字auto说明,可以省略
1.1.3 定义在复合语句中的变量
1.2 定义在函数体内
1.3 使用栈的原理进行分配内存的
2 全局变量
2.1 定义在函数体外
2.2 全局变量不初始化将自动赋值为0
2.3 全局变量的作用域是从定义行开始的,到文件结束
3 局部变量与全局变量的关系
3.1 局部变量与全局变量同名时,在子函数内全局变量不起作用
4 变量的生命周期
4.1 局部变量
4.1.1 开始:函数被调用
4.1.2 结束:函数结束
4.1.3 局部变量被释放后,之前对应的内存空间成为公共区域
4.2 全局变量
4.2.1 开始:主函数执行之前
4.2.2 结束:主函数结束
4.3 关键字
4.3.1 auto:自动变量,局部变量
4.3.2 static:静态
4.3.2.1 加在局部变量之前
4.3.2.1.1 延长局部变量的生命周期到整个程序运行结束
4.3.2.1.2 原理:首先判断局部变量是否已经分配过空间,如果没有则进行分配;如果已经分配过了(上次调用函数后变量没有被释放),则不再分配空间。
4.3.2.1.3 用途
4.3.2.1.4 作用域还是在函数内部
4.3.2.2 加在全局变量之前
4.3.2.2.1 作用域为所在文件内部