堆(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
评论