C++核心编程(四区)
内存分区模型
C++中程序在执行时,将程序大方向分为4个区域
创新互联专注于兴文网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供兴文营销型网站建设,兴文网站制作、兴文网页设计、兴文网站官网定制、小程序定制开发服务,打造兴文网络公司原创品牌,更为您提供兴文网站排名全网营销落地服务。
- 代码区:存放函数体的二进制代码,由系统操作进行管理
- 全局区:存放全局变量,静态变量和常量
- 栈区:由编译器自动分配和释放,存放函数的参数值字,局部变量等
- 堆区:由程序员分配和释放,若程序员不释放,则程序结束时由操作系统回收
程序运行前
代码区:
- 存放CPU执行的机器指令
- 代码区时共享的,共享的目的是对于频繁被执行的程序,只需要有一份代码即可
- 代码区只读,防止意外的修改
全局区:
- 全局变量、静态变量(static)存放在这里
- 全局区还包含了 常量区 字符常量和替他常量(const全局)也存放再此
- 该区的数据在程序结束后由操作系统释放
程序运行后
栈区:
- 由编译器自动分配释放,存放函数的参数值,局部变量等
- 不要返回局部变量的地址
- 栈区开辟的数据由编译器自动释放
- 先进后出,后进先出
堆区
- 由程序员分配数据,若程序员不释放,程序结束后由系统回收
- 再c++中主要用new再堆区中开辟内存
- 先进先出出,后进后出
拓展—new操作符的使用
c++中利用new操作符在 堆区开辟数据
new返回的是该数据类型的指针(地址)
释放堆区的操作:利用操作符:delete
基本语法
int * p = new 数据类型(一个数据);
delete p; //释放
int * arr = new int[10]; //数组
arr[i]; //引用数组
delete[] arr;
文章题目:C++基础-程序4区
链接地址:
http://jkwzsj.com/article/dsoihoe.html