static变量,static变量存储在哪里
发布时间:2024-04-07 19:25:45 行业百科
静态变量存储在哪里
1. 静态局部变量存储在静态存储区
当static修饰局部变量时,该变量称为静态局部变量,它的存储空间位于静态存储区,与函数的堆栈区不在同一个区域,因此函数运行完毕后静态局部变量不会被释放。
2. 静态全局变量存储在.data段或.bss段
全局变量和静态变量都存储在静态区(全局区)中,已初始化的全局变量和静态变量存放在.data段,而未初始化或初始化为0的全局变量和静态变量存放在.bss段。
3. 静态变量默认初始化为0
静态变量的第三个作用是默认初始化为0,全局变量也具备这一属性,因为全局变量同样存储在静态数据区中,内存中的静态区数据不会因函数的退出而释放空间。
4. 静态局部变量始终存在
静态局部变量在函数内定义,不同于自动变量,它在调用时存在,退出函数时不消失,静态局部变量的生存期为整个源程序。
5. 静态变量存储介绍
静态变量被存储在静态数据区,初始值为0则存放在BSS段,初始值非零则存放在数据段,数据段和BSS段都属于数据段中的静态存储方式。