📜  C中数据段组成

📅  最后修改于: 2020-10-22 09:49:36             🧑  作者: Mango

数据段

要了解我们的C程序的工作方式,我们需要了解分配给我们程序的内存的排列方式。

将所有变量,函数和数据结构分配给内存到称为数据段的特殊内存段中。数据段主要分为四个不同的部分,分别分配给我们C程序中定义的不同类型的数据。

数据段的组成部分是:

1.数据区

它是永久存储区。所有静态变量和外部变量都存储在数据区中。存储在数据区中的变量一直存在,直到程序退出。

2.代码区

这是只能由函数指针访问的存储区。代码区的大小是固定的。

3.堆区

众所周知,C支持动态内存分配。 C提供了malloc()和calloc()之类的函数,用于动态分配内存。因此,堆区域用于存储通过使用动态内存分配创建的数据结构。堆区域的大小是可变的,并且取决于内存中的可用空间。

4.堆栈区

堆栈区分为两部分:初始化和非初始化。初始化变量的优先级高于非初始化变量。

  • 所有自动变量都将内存存储到堆栈区域。
  • c中的常量存储在堆栈区域中。
  • 默认存储类的所有局部变量都存储在堆栈区域中。
  • 函数参数和返回值存储在堆栈区域中。
  • 堆栈区域是临时存储区域,因为只要程序超出范围,存储在堆栈区域中的变量就会被删除。