每个线程都有自己专属的栈(stack),先进后出(LIFO) 栈的最大尺寸固定,超出则引起栈溢出 变量离开作用范围后,栈上的数据会自动释放 堆上内存必须手工释放(C/C++),除非语言执行环境支持GC 如果明确知道数据占用多少内存或者数据很小就用栈。 如果是需要大量内存或者不确定需要多少内存就用堆。 下面是一个示例: 栈的实现原理 int abc(int a, int b) //c语言的形参是从右到左入栈的,b先入栈,a后入栈 示例如下: