C++随笔:内存类型

Posted 问尘

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++随笔:内存类型相关的知识,希望对你有一定的参考价值。

➤ 内存类型

一个程序会占用一个区域内的系统内存,在这个区域中,针对该应用,内存分为:

(2)堆区—Heap:用以动态的内存分配,一般比较大,由开发人员进行分配和释放,若在当前程序结束时还未释放,系统会自动进行回收,但分配与释放都应该由开发人员完成

需要特别注意的是:

堆区 自由存储区 是有所区别的, 自由存储是C++中通过 new 与 delete 动态分配和释放内存的抽象概念 ,而 堆是C语言和操作系统术语 ,是操作系统维护的一块动态分配内存。
new 所申请的内存区域在C++中称为自由存储区,藉由堆实现的自由存储,可以说 new 所申请的内存区域在堆上。
堆与自由存储区有一定区别,并非等价,如Bjarne Stroustrup所说:大概只是语言背景不同罢了。

(3)静态存储区—Static:存放全局变量静态变量的存储区,初始化的变量放在初始化区,未初始化的变量放在未初始化区(在C++里面没有这个区分了,他们共同占用同一块内存区)。在程序结束后释放静态存储区

(4)常量存储区:存放常量字符串的存储区,只读属性。在程序结束后释放常量存储区

需要特别注意的是, const 关键字修饰的变量存放在栈区或静态存储区, 是表示该变量在编译期间不能够被修改(可修改其内存数据,不建议怎么做)

(5)代码区:主要存储可执行代码,函数体的二进制代码,为只读属性。


B站个人主页:https://space.bilibili.com/513745196

知乎个人主页:https://www.zhihu.com/people/wen-chen-69-88

以上是关于C++随笔:内存类型的主要内容,如果未能解决你的问题,请参考以下文章

随笔——C++

C++随笔:常量指针和指针常量

置顶CoreCLR系列随笔

C++随笔:.NET CoreCLR之GC探索

随笔js

c++指针随笔1