什么是堆栈?用在什么地方?堆栈指针有什么用?

题目

什么是堆栈?用在什么地方?堆栈指针有什么用?

参考答案和解析
正确答案:堆栈是一片以“先进后出,后进先出”方式进行操作的重要的内存区域。主要用于保存和恢复子程、中断的返回地址,一些需要保护的重要数据等等。堆栈的指针用于指向堆栈的顶部。
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

单片机的堆栈指针SP始终是()。

A.指示堆栈底

B.指示堆栈顶

C.指示堆栈地址

D.指示堆栈长度


参考答案:B

第2题:

堆栈操作中,______保持不变。

A.堆栈的顶

B.堆栈中的数据

C.堆栈指针

D.堆栈的底


正确答案:D
解析:堆栈是只能通过访问它的一端(栈顶)来实现数据存储和检索的一种线性数据结构。由此可见,在对堆栈操作的过程中,栈顶会发生变化,堆栈中的数据肯定会变,堆栈指针通常指向下一个出栈数据的位置,故也会发生变化。唯一不变的只有堆栈的底,所以应该选择D。

第3题:

●堆栈操作中, (10) 保持不变。

(10) A. 堆栈的底

B. 堆栈中的数据

C. 堆栈指针

D. 堆栈的顶


正确答案:A
【解析】堆栈操作中,无论是执行入栈还是执行退栈,堆栈指针和栈顶指针都会随之而改变,但是栈底指针不会改变。

第4题:

什么是堆栈?它的作用是什么?堆栈指针的作用是什么?


正确答案: 堆栈是一个按照后进先出的原则存取数据的部件,它是由栈区和栈指针组成的。堆栈的作用是当主程序调用子程序、子程序调用子程序或中断时转入中断服务程序时,能把断点地址及有关的寄存器、标志位及时正确地保存下来,并能保证逐次正确地返回。堆栈除了有保存数据的栈区外,还有一个堆栈指针SP,它用来指示栈顶的位置。若是“向下生成”的堆栈,随着压入堆栈数据的增加,栈指针SP的值减少。但SP始终指向栈顶。

第5题:

堆栈操作中,保持不变的是:
A.堆栈的顶 B.堆栈中的数据 C.堆栈指针 D.堆栈的底


答案:D
解析:
提示:在CPU执行程序的过程中,会执行有关的堆栈操作指令。执行这样的指令,无论是压入堆栈还是弹出堆栈,堆栈指针和栈顶肯定随着指令的执行而发生改变。同时,堆栈中的数据也会随着压入数据的不同而改变。唯一不会改变的就是在堆找初始化时设置的堆栈的底。

第6题:

堆栈操作中,(10)保持不变。

A.堆栈的底

B.堆栈中的数据

C.堆栈指针

D.堆栈的顶


正确答案:A
解析:堆栈操作中,无论是执行入栈还是执行退栈,堆栈指针和栈顶指针都会随之而改变,但是栈底指针不会改变。

第7题:

堆栈操作中都是对栈顶单元进行的,访问堆栈的地址是由堆栈指针SP指定的。在操作过程中,指针 SP不需要用户指定。在下推式堆栈中,写入堆栈的单元地址是(36)。

A.PC

B.指令寄存器

C.(SP)-1

D.(SP)+1


正确答案:D
解析:堆栈是一个专门的存储区,其存取数据的顺序是先进后出,每次操作都是对栈顶单元进行的。栈顶单元的地址,每次进出栈时都要自动修改。栈顶单元的地址放在堆栈指针SP中,写入堆栈时,栈顶单元已经存有数据,再写入新数据时,不能写入原来的SP中,必须写到栈顶单元的下一单元中,在堆栈地址是向下生长的下推式堆栈中,写入数据的堆栈单元的堆栈单元地址是(SP)+1,即进栈操作把SP加1后再把进栈的数据写入新的栈顶单元(SP)/1中。出栈时,把栈顶单元内容弹出,然后(SP)-1。指针SP的修改是指令自动完成的,不需要用户参与。

第8题:

在堆栈操作中,保持不变的是(57)。

A.堆栈指针

B.堆栈中的数据

C.堆栈的顶

D.堆栈的底


正确答案:D
解析:在CPU执行程序的过程中,会执行有关的堆栈操作指令。执行这样的指令,无论是压入堆栈还是弹出堆栈,堆栈指针和栈顶将随着指令的执行而发生改变。同时,堆栈中的数据也会随着压入数据的不同而改变。唯一不会改变的就是在堆栈初始化时设置的堆栈的底。

第9题:

(2013年)在堆栈操作中,______保持不变。

A.堆栈的顶
B.堆栈的底
C.堆栈指针
D.堆栈中的数据

答案:B
解析:
堆栈都是一种数据项按序排列的数据结构,只能在一端(称为栈顶)对数据项进行插入和删除。操作过程中,堆栈的底保持不变。为了便于实现多级中断,使用堆栈来保护断点和现场最有效。

第10题:

什么叫堆栈?设置堆栈的主要是出于什么需要?堆栈有哪几种基本操作?为什么用户进行堆栈操作时不需要涉及具体的内存地址?


正确答案:堆栈是按后进先出( LIFO)原则存取的一种存储结构。在子程序和中断技术中,都要保存返回地址或断点地址以及现场等信息,这些信息的存入和取出都具有一个共同特点:最后存入的信息最先被取走。堆栈主要是为了适应这种存取方式而引入的。堆栈有两种基本操作:入栈和出栈。由于两种原因,使得进行堆栈操作时不需要涉及具体的内存地址:一是只有入栈和出栈两种基本擦作,入栈指令将源操作数存入栈顶,出栈操作从栈顶把数据取出送给目的操作数;二是设置了堆栈指针SP。规定SP始终指向栈顶,SP的初值可由程序设定。