news 2026/4/16 13:02:51

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
嵌入式学习!(一)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;

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 13:00:25

5-FAM,单一异构体,5-Carboxyfluorescein, 5-FAM, 单一异构体

5-FAM,单一异构体,5-Carboxyfluorescein, 5-FAM, 单一异构体中文名称: 5-羧基荧光素单一异构体(5-Carboxyfluorescein, 5-FAM, 单一异构体)反应特点及学术介绍:5-FAM(5-Carboxyfluorescein&…

作者头像 李华
网站建设 2026/4/16 11:10:47

思考与练习(第五章 基本数据类型)

一、单项选择题(本大题共 15 小题)1、Python 中,整数类型(int)表示没有小数部分的数值。关于 Python 整数的特点,以下说法正确的是:① Python 的整数有固定的最大值和最小值限制,与 …

作者头像 李华
网站建设 2026/4/15 23:15:33

如何在5分钟内构建跨平台计算机视觉应用界面?

如何在5分钟内构建跨平台计算机视觉应用界面? 【免费下载链接】gocv hybridgroup/gocv: 是一个基于 Go 语言的开源计算机视觉库,支持多种计算机视觉算法和工具。该项目提供了一个简单易用的计算机视觉库,可以方便地实现图像和视频处理算法&am…

作者头像 李华
网站建设 2026/4/16 10:21:18

DownKyi:解锁B站视频下载的终极技术方案

DownKyi:解锁B站视频下载的终极技术方案 【免费下载链接】downkyi 哔哩下载姬downkyi,哔哩哔哩网站视频下载工具,支持批量下载,支持8K、HDR、杜比视界,提供工具箱(音视频提取、去水印等)。 项…

作者头像 李华