分别存储初始化和未初始化的全局及静态变量;而全局区是一个更广义的概念,涵盖了数据段和BSS段。常量...
static修饰的未初始化变量也位于bss段,而初始化之后,又位于data段。另外我们熟知的堆区的栈区是大家比...
二进制代码和常量存放在正文段,动态分配的存储区在数据堆段,临时使用的变量在数据栈段。由此,我们可以确定全局赋值变量在正文段,未赋值的局部变量和实参传递在栈段,动态内存分配在堆段,常量在正文段,进程的优先级只能在PCB内。 收藏 反馈 分享
| C++ 中有多种不同类型的内存区域,不同区域存放不同的数据,赋予数据不同的生命周期。 程序在执行时将供用户使用内存大致划分为以下区域:常量数据区、全局/静态数据区、栈区、堆区、自由存储、代码区。常量数据区常量数据区主要用于存储字符串常量或者其他在编译期就已经知道的数据。常量数据区中的数据在整个程序的...
本质存放的数据不一样,代码段存放程序代码,程序中定义的静态变量全局变量会存放在数据段。用到的堆栈...
区section是编译器生成二进制文件的时候分的,一个二进制文件,分为文件头,代码区,数据区等等,等到...
栈区:容量小,存储速度快,适合存储生命周期短的数据,栈中存储变量(局部变量,函数的参数)。特点:先进后出。程序结束后由编译器自动分配释放。堆区:容量大,存取速度慢,适合储存生命周期长的数据,适合储存对象。适应动态内存分配(malloc)。程序结束后由程序员分配释放。静态区:存放全局变量、静态变量,初始化的全局变量...
也就是说:栈存的值是肯定在编译期就确定大小的,静态的,生命周期固定的;而堆上储存的数据一般是...
内存分布图 曾经写的一篇关于C语言基础的文章:大一新生,0 基础学习C语言很困难,推荐买什么书?7 ...