C语言数据段
要了解我们的C程序的工作方式,我们需要了解分配给我们程序的内存的排列方式。
所有变量,函数和数据结构均已分配内存到称为数据段的特殊内存段中。数据段主要分为四个不同的部分,专门分配给我们的C程序中定义的不同类型的数据。
数据段的部分是:
1、数据区
这是永久存储区。所有静态变量和外部变量都存储在数据区中。存储在数据区中的变量一直存在,直到程序退出。
2、代码区
它是只能由功能指针访问的存储区。代码区的大小是固定的。
3、堆区域
我们知道C支持动态内存分配。 C提供了malloc()和calloc()之类的函数,用于动态分配内存。因此,堆区域用于存储通过使用动态内存分配创建的数据结构。堆区域的大小是可变的,并且取决于内存中的可用空间。
4、堆栈区域
堆栈区域分为两部分: 初始化和非初始化。初始化变量的优先级高于非初始化变量。
所有自动变量都将内存存储到堆栈区域。
C中的常量存储在堆栈区域中。
默认存储类的所有局部变量都存储在堆栈区域中。
函数参数和返回值存储在堆栈区域中。
堆栈区域是临时存储区域,因为只要程序超出范围,存储在堆栈区域中的变量就会被删除。