C语言程序需要载入内存才可以运行,其不同的数据保存在不同的区域。所使用的内存可以分成两类:一类是静态存储区,另一类是动态存储区。 C语言程序的存储区如下图所示: 1、静态存储区 静态存储区分为三类:只读数据区(RO Data)、已初始化读写数据区(RW Data)、未初始化读写读写数据区(BSS)。这三类存储区都是在...
1、静态存储区 静态存储区分为三类:只读数据区(RO Data)、已初始化读写数据区(RW Data)、未初始化读写读写数据区(BSS)。这三类存储区都是在程序的编译-连接阶段确定的,且运行过程中是不会变化的,只有当程序退出的时候,静态存储区的内存才会被系统回收。 2、动态存储区 动态存储区主要分为两类:一类是栈(Sta...
1.静态存储区 内容 : 静态存储区用于存储程序的静态局部变量 和 全局变量 ; 2.静态存储区大小 : 在程序编译阶段就可以确定静态存储区大小了, 将静态局部变量和全部变量 的大小相加即可 ; 3.静态存储区 生命周期 : 程序开始运行时分配静态存储区, 程序运行结束后释放静态存储区 ; 4.静态局部变量 : 静态局部变...
指针p存储某个存储空间的地址,数据“Hello World1”为字符串常量,所以存储在静态存储区。虽然通过p[2]可以访问到静态存储区中的第三个数据单元,即字符‘l’所在的存储的单元。但是因为数据“Hello World1”为字符串常量,不可以改变,所以在程序运行时,会报告内存错误。 并且,如果此时对p和p1输出的时候会发现p和p1...
3、全局区(静态区)(static)—,全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域(RW), 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域(ZI)。 - 程序结束后有系统释放 4、文字常量区 —常量字符串就是放在这里的。 程序结束后由系统释放(RO) ...
内存分成5个区,它们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。 1、栈区(stack):FIFO就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等。 2、堆区(heap):就是那些由new分配的内存块,它们的释放编译器不去管,由我们的应用程序去控...
常量通常使用const关键字定义,并分配在静态存储区。 示例代码: #include <stdio.h> const int constVar = 40; // 常量 int main() { printf("常量constVar的值为:%d\n", constVar); return 0; } 二、动态存储方式 动态存储方式是指在程序运行时根据需要动态分配和释放内存空间的存储方式。动态存储方式...
栈区(stack):存放函数形参和局部变量(auto类型),由编译器自动分配和释放 堆区(heap):该区由程序员申请后使用,需要手动释放否则会造成内存泄漏。如果程序员没有手动释放,那么程序结束时可能由OS回收。 全局/静态存储区:存放全局变量和静态变量(包括静态全局变量与静态局部变量),初始化的全局变量和静态局部变量放在一...
全局(静态)区介绍 通常是用于那些在编译期间就能确定存储大小的变量的存储区,但它用于的是在整个程序运行期间都可见的全局变量和静态变量。 全局区有.bss段和.data段组成,可读可写。 .bss段 未初始化的全局变量和未初始化的静态变量存放在.bss段。 初始化为0的全局变量和初始化为0的静态变量存放在.bss段。
C语言中局部变量和全局变量变量的存储类别(static,extern,auto,register) 一. 从变量的作用域划分变量(即从空间)角度来分 1.全局变量 2.局部变量 二. 从变量值存在的时间或存储类别(即生存期)角度来分 2.1. 静态存储区 存放以下数据:代码段(text)、只读数据段(rodata)、读写数据段(rwdata)、未初始化数据段...