局部变量: 定义在函数体内部的变量,作用域仅限于函数体内部。离开函数体就会无效。再调用就是出错。
关于局部变量的作用域还要说明以下几点:
(1)主函数也是一个函数,它与其他函数是平行关系。主函数中定义的变量也只能在主函数中使用,不能在其他函数中使用。同时,主函数中也不能使用其他函数中定义的变量。
(2)形参变量是属于被调函数的局部变量,实参变量是属于主调函数的局部变量。
(3)在不同函数中可以使用相同的变量名,它们代表不同的对象,编译器分配不同的单元,互不干扰。
(4)在复合语句中定义的变量其作用域只能在复合语句范围内。
全局变量: 定义在所有的函数外部定义的变量,它的作用域是整个程序,也就是所有的源文件,包括.c和.h文件。
根据变量的存在时间(生存周期)可以分成:静态存储和动态存储。
静态存储变量:在程序运行期间分配固定存储空间的变量 这种分配变量的方式叫做静态储存方式
动态存储变量:在程序运行期间根据需要进行动态分配存储空间的变量 这种分配方式叫做动态分配方式 ,动态储存变量的例子比如:函数的形参、自动变量(没有加static的局部变量)、函数调用的现场现场保护和返回值。
auto 变量:
函数中的局部变量,如果不专门的声明为 static存储,都是动态分配存储<