堆栈,托管堆,堆,栈的区别

博主做了两年的程序员了看网上的文章有时候各种迷惑,今天终于弄明白了这四个词之间的关系,由于之前是写C++的,之后又写了C#所以就各种迷茫.一下是正确答案:

C++:

堆:(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。它与数据结构中的堆是两回事,分配方式类似链表.

栈:(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 

 

.net/C#:

堆:C#中一般叫做托管堆,就是C++中的堆

栈:C#中一般就叫"堆栈",就是C++中的栈,其实"堆栈"这个名字真的很让人误解,老以为它是在描述笼统的概念.

posted @ 2019-01-08 17:08  屋檐不懂雨  阅读(451)  评论(0编辑  收藏  举报