| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> c++内存五区笔记 -> 正文阅读 |
|
[C++知识库]c++内存五区笔记 |
黑马程序员c++ p84-p88 有感,下附链接 黑马程序员匠心之作|C++教程从0到1入门编程,学习编程不再难_哔哩哔哩_bilibili 1.代码区 顾名思义,该区储存代码,以二进制形式存放函数体,由操作系统管理 代码区两个特点: 共享:该exe需要多次使用,不需要每次使用编译新的代码 只读:防止程序意外更改指令 2.全局区(静态区) 该区储存的值不会随着exe程序执行完毕而释放 储存变量有:全局变量, 静态变量: 静态全局变量(static),静态局部变量(static), 常量: 全局常量(const),字符串常量("string") 注意: 1.字符串常量!=字符串
与
二者完全不一样 2.静态局部变量不储存在全局区,该类型与局部变量储存在一起 猜测是代码区 3.static修饰后,该变量可以在程序运行过程中更改数值,但程序结束后,该值不会被释放 详见:? ??static静态变量的理解 - dzqdevin - 博客园 (cnblogs.com) 辨析常量变量种类的代码:
?3.栈区 由编译器自动分配和释放,存放函数的参数值和局部变量等 比如被调函数的某些变量值(非new或malloc情况下) 栈区储存的数据在执行完毕后自动释放? (某些情况下会保存一次命令,见注意2) 注意: 1.不要返回局部变量的地址,第一次返回程序会在参数中保留地址,第二次再次使用返回的值,会被栈收回,输出乱码 相关示例: 1.int a 由主函数传入
猜测这里对由func函数传入的局部变量a的地址p解引后两次乱码原因是: 局部变量a是由主函数传入的,对比接下来的func函数内首次声明的情况 2.int a在被调函数内声明
第一次可以打印出正确数值,因为编译器做了保留 ?第二次数据不会保留了 4.堆区 ?由程序员分配和释放,如果程序员未主动释放将由系统在程序执行完毕后自动释放 在c++中,主要用new在堆区开辟内存 思考:? c++中的malloc与new的区别是? 见 5.自动储存区 对比于栈区,被调函数执行完毕,栈区储存的数据会被自动销毁,但如果指针p储存一个堆区的值,那么即使被调函数执行完毕,就算变量名p消失,p所储存的地址值也不会消失,此时p储存的堆区地址值被主函数的指针p所指向
类比开房: delete之后,房间p住的人已经更改了,这时再去房间p做各种操作会引发异常,比如被拷走? 5.自由储存区 在c++中,malloc函数申请的内存就在这里 自由储存区与堆的区别:?C++ 自由存储区是否等价于堆? - melonstreet - 博客园 (cnblogs.com) C++ 自由存储区是否等价于堆? - 知乎 (zhihu.com)
new与malloc区别? 首先,new不需要程序员规定申请内存大小,会自动分配 |
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 | -2024/12/28 13:40:52- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |