第1个回答 推荐于2016-12-02
所谓堆栈区是程序要求系统为程序保留的固定尺寸的内存区域,尺寸大小由程序提出,属于编译选项。
存储区分为两部分:堆和栈
堆是一整片存储区,可以由程序使用,比如你在程序区中用malloc或new来申请存储区就是在堆中申请,如果堆满了,就申请失败;另外其他的子程序也会使用,比如printf,scanf也会在堆中临时申请内存存储输入输出的字符串
栈是一片存储区,由系统帮助管理,叫先进后出、后进先出存储区,这些存储区一般用于调用子程序时保存现场、保存参数、开设子程序变量,只要调用函数就会用到栈,只不过这些操作是c语言程序编译好后自动调用的,用户一般不会体会到它的使用,栈也会满,递归函数由于要出现大量调用函数的情况,尤其对栈的消耗很大。另外,嵌套循环也会用到栈。本回答被提问者和网友采纳