能力值:
( LV2,RANK:10 )
|
-
-
2 楼
堆栈是连续的内存单元,存取方式遵循“先进后出”的原则。
其作用一般是保存寄存器或标志寄存器的内容。(我也是新手啊 ,有错的话别笑我哦:) )
至于它的具体定义,你可以到望上搜一下。
|
能力值:
(RANK:570 )
|
-
-
3 楼
|
能力值:
( LV9,RANK:210 )
|
-
-
4 楼
堆栈是用来传递参数用的
临时变量存贮的地方
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
二 堆栈的存储方式
对栈中元素的操作是按后进先出(Last In First Out,简称LIFO)的原则进行的,即最后压入的元素最先弹出。
在栈的操作过程中,有一个永远指向栈顶的栈顶指针,在压入和弹出数据时,栈顶指针向上或向下移动。当栈顶指针为零时(即指向栈底的后面),栈为空栈。如果压入的数据过多超出了栈的最大空间,则发生栈上溢。
在网上找的估计对你有帮助
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
有些东西是要你靠实践才能掌握好的,
如果给你小程序
void A(int a)
{
a=3;
}
int main()
{
int a;
a=2;
A(a);
return 0;
}
你把他运行时干了些什么,或者通过调试器观察堆栈的变化,里面放的内容是什么,怎么变化的。
然后再联系着看看经典的定义,效果是无法想象的。
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
ESP指向栈顶地址
STDCALL调用方式:被调用函数参数从右到左入栈,被调用函数负责清理堆栈,保持堆栈平衡.
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
堆栈对应的硬件是不是内存条?
请高手不笑赐教!
|
能力值:
(RANK:550 )
|
-
-
9 楼
http://bbs.pediy.com/showthread.php?s=&threadid=27018 【转帖】堆和栈的区别 这篇文章不错。
|
能力值:
( LV12,RANK:210 )
|
-
-
10 楼
没错, 就是内存条。
|
能力值:
( LV3,RANK:20 )
|
-
-
11 楼
Last In First Out
|
能力值:
( LV4,RANK:50 )
|
-
-
12 楼
堆和栈其实是不同的两种数据结构,至于数据结构存在于什么的地方(内存?硬盘?其实是无所谓的,“堆对应内存条”显然是错的!)
栈:先进后出,具体就像个桶一样,先放进桶里的东西会更靠近桶低。
堆:以一定结构组织的数据节点,每个节点有值。一般所说的堆是指二叉树形式组织的单元。
具体的定义还是自己照本数据结构书籍看下,想学东西就别手懒。否则会被自己都不清楚的人误导
程序运行中涉及到的堆和栈,除了符合基本定义外,还有其他一些操作系统赋予的特性。比如,堆和栈在虚拟地址空间中的位置分配范围不同,堆和栈的生长方向不同;堆用于MALLOC、new之类的程序自主分配,栈用于临时变量存储和调用实现等等。
|
|
|