c/c++后台开发必知堆与栈的区分

小微 科技c/c++后台开发必知堆与栈的区分已关闭评论121字数 380阅读模式
摘要堆(Heap)与栈(Stack)是开发人员必须面对的两个概念,在理解这两个概念时,需要放到具体的场景下,因为不同场景下,堆与栈代表不同的含义。一般情况下,有两层含义:(1)程序内存...

堆(Heap)与栈(Stack)是开发人员必需面对的两个概念,在理解这两个概念时,需要放到具体的场景下,由于不同场景下,堆与栈代表不同的含意。一般情况下,有两层含意:
(1)程序内存布局场景下,堆与栈表示两种内存管理方式;
(2)数据结构场景下,堆与栈表示两种经常使用的数据结构。

1.程序内存分区中的堆与栈

1.1 栈简介

栈由操作系统自动分配释放 ,用于寄存函数的参数值、局部变量等,其操作方式相似于数据结构中的栈。参考如下代码:文章源自微观生活(93wg.com)微观生活-https://93wg.com/3246.html

int main {
int b;				//栈
char s[] = &34;; 	//栈
char *p2;			//栈
}

其中函数中定义的局部变量依照前后定义的顺序顺次压入栈中,也就是说相邻变量的地址之间不会存在其它变量。栈的内存地址生长方向与堆相反,由高到底,所文章源自微观生活(93wg.com)微观生活-https://93wg.com/3246.html

以上就是微观生活(93wg.com)关于“c/c++后台开发必知堆与栈的区分”的详细内容,希望对大家有所帮助!文章源自微观生活(93wg.com)微观生活-https://93wg.com/3246.html 文章源自微观生活(93wg.com)微观生活-https://93wg.com/3246.html

 
小微
  • 版权声明: 本文部分文字与图片资源来自于网络,转载此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们(管理员邮箱:81118366@qq.com),情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!
  • 转载请务必保留本文链接:https://93wg.com/3246.html