static关键字如何影响可见性、生存期;

变量具有的特性:1、程序在编译链接时表现的可见性;2、程序在运行时表现的生存期;
可见性(作用范围)-----变量在声明后可以作用于哪些地方,与变量的定义位置有关;
全局变量的可见性-----从定义起向上不可见,向下所有函数都可见;
局部变量的可见性-----只在当前函数范围内起作用(注:块局部变量);
生存期-----
全局变量的生存周期-----因为在程序的执行过程中始终占用存储单元,所以全局变量的生存周期是整个程序的生存周期;
局部变量的生存周期-----函数的一次调用周期

C语言对全局变量采用静态分配,对局部变量采用动态分配策略;在c语言中通过auto和static来指定存储类别;
关键字static-----被satic声明的变量为静态变量;使用静态存储方式,变量的存储空间分配不以程序运行状况决定,由static修饰的变量会存储于静态数据区,当在函数体内,被static修饰的变量在函数被调用期间值不变,也就是在执行期间会一直存在,所占的空间直到程序运行结束才会被释放(生存期);
在函数体外模块内,在本模块范围内有效;static类似于全局变量,当给它赋值后,后面再出现它修饰的变量值一律为第一次赋的初值(可见性);

你可能感兴趣的:(static关键字如何影响可见性、生存期;)