问题
单项选择题
堆栈是一个专门的存储区域,访问堆栈时,不需要程序人员指定堆栈单元的地址,要存取的堆栈单元地址是由 (3) 给出的,并且在堆栈操作中这个地址是自动修改的。存取堆栈时存入取出的数据的先后顺序是 (4) ,这对中断操作提供了很大方便。
(4)处填()。
A.先进先出
B.先进后出
C.没有一定顺序
D.按用户要求进行读写
答案
参考答案:B
解析:
堆栈是一个专门的存储区域,每次存取都是与栈顶单元打交道,栈顶单元的地址随着堆栈操作自动修改,指向新的栈顶单元。给出栈顶单元的地址指针叫堆栈指针,简写为SP。
每一堆栈有一个栈底单元,其内容是不能改变的,堆栈开始工作时,SP指向栈底。如果数据进栈时,不能写入栈底,只能写入栈底的下一个单元中,即(SP)+1那个单元中,每次写入时都是这样,显然最后写入堆栈的数据,在SP指出的离栈底单元最远的栈顶单元中。出栈操作规定每次把SP指定的栈顶单元的数据弹出来。显然最先由堆栈中取出的数据是最后刚刚进栈的数据,而最先进栈的数据要最后才能读出来,因此访问堆栈,存入、取出的数据的先后次序是先进后出。