当前位置:首页 > 内存 > 正文

外部变量存储在内存中的哪里

  • 内存
  • 2024-05-02 08:08:19
  • 6693

一、变量的静态存储与动态存储首先,静态存储和动态存储都是在内存中存储变量的方式。
C语言中的变量分为局部变量(auto)、注册变量(register)、全局变量(extern)和静态变量(static)。局部变量和寄存器变量存储在内存中作为动态内存,外部变量和静态变量存储在内存中作为静态内存。(作者注:C语言中不存在真正的“全局变量”。人们经常错误地称为“全局变量”的通常是文件作用域对象。参考:全局变量-维基百科)
静态存储变量存储在内存的静态区域中,在程序生命周期内不会被释放。动态存储的变量在程序执行期间分配存储位置并在使用后释放。
如果静态存储的变量在声明后没有初始化,系统会根据数据类型自动将变量初始化为“0”或“\0”。如果动态存储的变量在声明后未初始化,则其值将不确定。
二、C语言中有哪些存储类型?C语言中有四种存储类型:自动存储、外部存储、寄存器存储和静态存储。区和BBS区、堆栈区、堆区。
存储类型
Auto只能用于指定环境变量的存储类型。因此,自动识别的变量被放置在堆栈位置。
<2.外部存储类型
​3.寄存器存储类型
定义为寄存器的变量从内存转移到CPU寄存器后,会一直保留在CPU寄存器中,因此访问寄存器变量会比较困难在此过程中节省了大量的学习周期。
​4.静态存储类型
​变量在数据空间中以静态类型存储,无论是全局的还是局部的,它们的生命周期对于环境来说是静态的。变量,它们的范围在{}对内。静态变量如果没有初始化,会自动初始化为0。静态变量只能初始化一次。