stack到底是栈还是堆栈

来源:百度知道 编辑:UC知道 时间:2024/06/30 20:37:59
堆是heap
stack是栈
怎么还有的说stack是堆栈
堆和栈是有区别的,堆栈是堆还是栈,还是两者?

在计算机语言中:
"堆栈"简称"栈"就是stack

堆就是heap
呵呵

C 语言中
stack是栈,由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。
heap是堆,一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。
例如:
int a = 0; 全局初始化区
char *p1; 全局未初始化区
main()
{
int b; 栈
char s[] = "abc"; 栈
char *p2; 栈
char *p3 = "123456"; 123456\0在常量区,p3在栈上。
static int c =0; 全局(静态)初始化区
p1 = (char *)malloc(10);
p2 = (char *)malloc(20);
分配得来得10和20字节的区域就在堆区。

英文stack是堆栈,别的计算机语言也许叫 stack 堆栈(例如PostScript),与C 语言习惯不同罢了。

堆栈当然是分开的

stack 是堆

而平时说的堆栈,就是说的是栈,只不过是一种习惯而已

堆栈当然是有区别的

至于区别,你可以在网上搜搜,真的太多了点。。

新年快乐吧

堆栈是两个东西, 他们有本质上的区别, 就像我们经常把"男女"放在一起说一样.

程序分配内存时最常用到的两个位置就是堆和栈, 就像世界上最多的就是男人和女人, 对于李宇春, 程序上叫做静态区域, 这部分不是堆也不是栈.