当前位置: 首页 > news >正文

嵌入式学习!(一)C++学习(16)入门-12/17

C++核心编程:面向对象

1. 内存分区模型

执行程序时,内存分为4个区域:

@ 代码区:存放函数二进制代码,有操作系统进行管理

@ 全局区:存放全局变量和静态变量及常量

@ 栈区:由编译器自动分配释放,存放函数的参数值,局部变量等

@ 堆区:由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收

1.1 程序执行前

编译后,生成exe文件,未执行程序前分为两个区域:

代码区:存放CPU执行的机器指令

特点:共享、只读

全局区:存放全局变量和静态变量

还包含常量区、字符串常量和其他常量

该区域数据在程序结束后由操作系统释放

tips1:静态变量:在普通变量前加上 static

tips2:常量:字符串常量 "world"; const修饰的变量(全局、局部)

1.2 程序执行后

栈区:由编译器自动分配释放,存放函数的参数值,局部变量等

注意事项:不要返回局部变量的地址,栈区开辟的数据有编译器自动释放

堆区:由程序员分配和释放,若程序员不释放,程序结束时由操作系统回收

C++中注意利用new关键字在堆区开辟内存

1.3 new 操作符

堆区开辟的数据,由程序员手动开辟,手动释放,释放利用操作符delete

语法:new 数据类型

利用new创建的数据,会返回该数据对应的类型指针

int * p = new int(10); // new 返回的值是个地址,堆区中 值为10 的 地址

delete p; //释放堆区内存

开辟一个数组: int * arr = new int[10]; //用中括号 [ ]

释放:delete [ ] arr;

http://www.gsyq.cn/news/118853.html

相关文章:

  • 5大付费墙绕过技术深度解析:Bypass Paywalls Clean终极使用指南
  • 中新全新医疗健康枢纽落户重庆,重庆鹏瑞利健康城项目启动 | 美通社头条
  • 百事可乐无糖推出全新草莓奶昔味产品
  • Springboot商洛市精准扶贫管理系统h906y(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • 哔哩下载姬DownKyi:专业级B站视频内容管理解决方案深度解析
  • Redis 生产环境命令管控规范
  • PMOST管防反接功能
  • GKD自动化工具:解放双手的终极手机助手 [特殊字符]✨
  • 终极免费抽奖神器:Magpie-LuckyDraw全平台部署指南
  • 5-FAM,单一异构体,5-Carboxyfluorescein, 5-FAM, 单一异构体
  • Quasar 705 T Amidite,Quasar 705 T 核苷酸酰胺化试剂,化学特性
  • 百度贴吧用户脚本终极指南:告别繁琐操作,体验贴吧新境界
  • Unity RestClient 终极指南:告别回调地狱的异步网络编程
  • 驱动开发系列74 - GPU中的I2C
  • 思考与练习之答案与解析(第六章 程序控制结构)
  • 问财数据获取终极方案:Python量化分析新利器
  • 词库转换全攻略:告别输入法迁移困扰的终极解决方案
  • springboot甘肃非物质文化网站的设计与开发(11509)
  • Python包管理革命:在AI工作流中如何选择pip与uv
  • 基于SpringBoot的企业客户管理系统(11503)
  • Webpack模块解析陷阱:当“default“成为你的调试噩梦
  • Mermaid在线编辑器终极指南:轻松制作专业级可视化图表
  • diffuser中的注意力处理器(attention_processor)
  • Mermaid-Live-Editor:零基础3分钟上手图表制作的实时编辑器
  • Vue 中理解__proto__和prototype
  • Magpie-LuckyDraw:5分钟上手的多平台炫酷抽奖系统终极指南
  • 从卷 Java 到冲网安!计算机人 2025 自救路线:附 40-150 万安全岗 + 技能衔接清单
  • Android键盘可见性事件监听终极指南:让你的应用完美响应键盘变化
  • 百度网盘高速下载神器:告别限速的终极解决方案
  • Flutter Engine长文本渲染优化:从卡顿到流畅的实战指南