• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C语言 > C++中静态存储区与栈以及堆的区别详解

C++中静态存储区与栈以及堆的区别详解

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c++静态变量,c++中的静态变量,c++静态成员函数,c++静态函数,c++静态成员变量等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

学习c++如果不了解内存分配是一件非常可悲的事情。而且,可以这样讲,一个C++程序员无法掌握内存、无法了解内存,是不能够成为一个合格的C++程序员的。
一、内存基本构成
可编程内存在基本上分为这样的几大部分:静态存储区、堆区和栈区。他们的功能不同,对他们使用方式也就不同。
静态存储区:内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。它主要存放静态数据、全局数据和常量。
栈区:在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。
堆区:亦称动态内存分配。程序在运行的时候用malloc或new申请任意大小的内存,程序员自己负责在适当的时候用free或delete释放内存。动态内存的生存期可以由我们决定,如果我们不释放内存,程序将在最后才释放掉动态内存。 但是,良好的编程习惯是:如果某动态内存不再使用,需要将其释放掉,否则,我们认为发生了内存泄漏现象。

二、三者之间的区别
我们通过代码段来看看对这样的三部分内存需要怎样的操作和不同,以及应该注意怎样的地方。
例一:静态存储区与栈区
</div>

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C++中 静态局部变量实例详解
  • C++ 成员变量的初始化顺序问题详解
  • 关于C++中构造函数初始化成员列表的总结
  • C++面试题之数a、b的值互换(不使用中间变量)
  • 解析C++中的虚拟函数及其静态类型和动态类型
  • 关于C++类的成员初始化列表的相关问题
  • C++中结构体的类型定义和初始化以及变量引用
  • C++之类的静态变量
  • C++中COM组件初始化方法实例分析
  • C++中关于[]静态数组和new分配的动态数组的区别分析

相关文章

  • 2017-05-28C语言数据结构 链表与归并排序实例详解
  • 2017-05-28c语言实现冒泡排序、希尔排序等多种算法示例
  • 2017-05-28C++编写生成不重复的随机数代码
  • 2017-05-28在C++中自定义宏的简单方法
  • 2017-05-28C++使用递归和非递归算法实现的二叉树叶子节点个数计算方法
  • 2017-05-28详解散列表算法与其相关的C语言实现
  • 2022-04-30编程时请选择正确的输入法,严格区分中英文
  • 2017-05-28C++设计模式之命令模式
  • 2017-05-28VC中SDK与MFC的区别浅析
  • 2022-04-30载入内存,让程序运行起来

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C++动态数组类的封装实例
    • C语言转义字符
    • C++中函数的默认参数详细解析
    • 浅谈在函数中返回动态的内存
    • C语言数据结构实现链表逆序并输出
    • c语言B树深入理解
    • 从汇编看c++中默认构造函数的使用分析
    • 浅谈C语言共用体和与结构体的区别
    • C语言 MD5的源码实例详解
    • C语言简单实现计算字符个数的方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有