zoukankan      html  css  js  c++  java
  • 堆与栈的区别

    原文http://wenku.baidu.com/view/a0f0ecbaf121dd36a32d82dc.html###

    总结:

    1、在c++中内存分5个区 , 堆、栈、自由存储、全局/静态、常量

    栈:由编译器分配,存局部变量或函数参数的

    堆:由new分配的内存块

    自由存储:malloc分配,free结束的内存块

    全局/静态:存全局静态变量

    常量:由const声明的常量

    堆与栈的区别:

    • 管理方式:堆由程序员管理,栈由编译器管理
    • 空间大小不同
    • 栈不产生碎片
    • 栈是向下生长的,向着内存地址减小的方向生长的,则相反
    • 堆是动态分配的,栈有动态与静态俩种
    • 栈的分配效率高

    注 通常所说的堆栈是指 :栈

    2、在java中分为: 堆 和 栈

    堆:存放由new创建的对象和数组,动态分配内存的大小,速度比栈慢点儿

    栈:存放函数中定义的局部数据类型变量及对象引用变量,速度快,数据可共享,缺乏灵活性

  • 相关阅读:
    126
    125
    124
    123
    122
    121
    120
    119
    洛谷 P5407 【[THUPC2019]历史行程】
    济南清北学堂七日游
  • 原文地址:https://www.cnblogs.com/zhangxiujun/p/2630187.html
Copyright © 2011-2022 走看看