1,堆就直接是内存区域了,它是为了栈的引用而开发内存的;
2,栈是一种数据结构,栈中每个指针会指向堆中的某一内存区域或说是空间;
3,作为数据结构的概念,堆是一种经过排序的树形数据结构,每个结点都有一个值。堆的特点是根结点的值最小/最大,且根结点的两个子树也是一个堆。由于堆的这个特性,常用来实现优先队列等;
4,作为内存的概念,堆是程序员自己申请的空间,比如c里面的malloc和 c++ 的 new 得到的空间,使用后要自己释放;栈一般是程序自己分配的空间,用于存放函数的参数、返回地址、局部变量等。