当前位置: 首页 > 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.cnnetsun.cn/news/119589.html

相关文章:

  • 终极免费抽奖神器:Magpie-LuckyDraw全平台部署指南
  • 技术人才职业发展:从工具思维到价值创造的成长阶梯
  • 百度贴吧用户脚本终极指南:告别繁琐操作,体验贴吧新境界
  • 等待节点-–-behaviac
  • Nginx性能优化实战:从基础配置到高级调优的完整指南
  • ThingsGateway:开源智能设备管理平台的终极指南
  • KolodaView开源项目贡献指南
  • 5‘-Thiol Modifier C6 S-S Amidite,5‘-硫醇修饰剂 C6 双硫键核苷酸酰胺化试剂
  • Python:SOLID 面向对象设计原则
  • 专业级鼠标性能测试工具:从数据采集到精准分析的全链路解析
  • Magpie-LuckyDraw:5分钟上手的多平台炫酷抽奖系统终极指南
  • 魔兽争霸III现代化修复工具:全面解决兼容性问题的终极指南
  • 数字内容获取革命:智能绕过付费墙的完整解决方案
  • 256台H100服务器算力中心的带外管理网络建设方案
  • 深入理解指针(7)
  • 从卷 Java 到冲网安!计算机人 2025 自救路线:附 40-150 万安全岗 + 技能衔接清单
  • python大数据的基于k-means算法的校园美食推荐系统_j4eg7g7z--论文
  • MouseTester专业指南:3步完成鼠标性能精准诊断
  • [鸿蒙2025领航者闯关]图标资源统一管理
  • 区分__proto__和prototype
  • 西门子PLC地址知识点
  • EmotiVoice开源项目依赖项管理最佳实践
  • 如何彻底解决腾讯游戏卡顿问题:sguard_limit资源限制器完整指南
  • MiniGPT-4终极优化指南:5个简单技巧实现3倍推理加速
  • 鼠标性能测试终极指南:从新手到专家的完整解决方案
  • 终极指南:如何用pbxproj轻松玩转Xcode项目文件
  • 移动端AI部署革命:Paddle-Lite如何让深度学习模型在手机上流畅运行
  • 类型安全强化学习实战:从Gymnasium类型提示到项目稳健性提升
  • OBS直播教程:OBS多路推流插件如何下载?如何安装?怎么用?
  • ComfyUI-Manager依赖安装:5分钟搞定pip与uv的完美切换