您好、欢迎来到现金彩票网!
当前位置:老k棋牌 > 栈区 >

堆栈区与一般的数据存储区有何异同?其重要作用是什么?

发布时间:2019-07-04 05:26 来源:未知 编辑:admin

  所谓堆栈区是程序要求系统为程序保留的固定尺寸的内存区域,尺寸大小由程序提出,属于编译选项。

  堆是一整片存储区,可以由程序使用,比如你在程序区中用malloc或new来申请存储区就是在堆中申请,如果堆满了,就申请失败;另外其他的子程序也会使用,比如printf,scanf也会在堆中临时申请内存存储输入输出的字符串

  栈是一片存储区,由系统帮助管理,叫先进后出、后进先出存储区,这些存储区一般用于调用子程序时保存现场、保存参数、开设子程序变量,只要调用函数就会用到栈,只不过这些操作是c语言程序编译好后自动调用的,用户一般不会体会到它的使用,栈也会满,递归函数由于要出现大量调用函数的情况,尤其对栈的消耗很大。另外,嵌套循环也会用到栈。

  堆区是动态分配内存的区,new出来的变量都放在堆区,栈区是放局部变量的区,比如一个函数里面定义一个Int x,这个变量就是放在栈区,函数调用结束后,就会释放这个变量所占的内存空间,一般的数据存储区主要有BSS段和只读存储区,还有全局区,全局区存初始化的全局变量和静态变量,BSS段存未初始化的全局变量和未初始化的静态变量,只读存储区存字符串字面值等比如abc

http://theenigmaco.com/zhanqu/242.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有