C语言出栈是什么意思,C语言中的出栈是什么意思??

2020-11-24 21:03:43 字数 5604 阅读 5447

1楼:匿名用户

出栈是删除栈顶的元素,输出栈的值就是仅仅把它显示在屏幕上,并不删除它的值,

2楼:匿名用户

栈 是c中一个容器,先进先出, 出栈就是把数据取出来。输出栈的值就是把出栈的数据打印出来。看一下书就明白的。

3楼:匿名用户

出栈是说删除最顶上的元素。

c语言中的出栈是什么意思??

4楼:匿名用户

不是的,是把指针指的位置移动了。而非是删除数据。

当把数据押入栈的时候,先移动指针,指向下一个位置,然后再押入。

当把数据押出栈的时候,先指向下一个位置,然后再押入,再移动指针。

出栈和入栈的操作顺序是相反的。一个先动指针,一个先动数据。

该图为出栈的表示图。画画板画的,粗糙了点,凑合着看吧。

5楼:汐日南莘

出栈是输出的意思!

这是数据结构里面的一种存储数据的方式!

类似以数组!有先进后出的特点!

如果你要的话我可以给你一个堆栈的程序!

6楼:匿名用户

可以去查看数据结构中的栈结构,filf 先进后出。

出栈的意思是弹出栈顶的元素,

弹出的意思从内存中拷贝出来,删除原有元素!

7楼:拥有你的色彩

。。不是的,数据先压栈,在出栈,算是读取数据,把数据从栈里取出来。

栈的结构就是先进后出,先进栈的最后出栈,当然,取出之后栈上的数据是要释放掉的。

在c语言里,参数的压栈和出栈分别是什么意思

8楼:匿名用户

压栈是进栈,把元素放到栈里面;出栈,把元素从栈中取出。

栈是先进后出。举个例子,一个装羽毛球的筒子,一边能开一边不能开,1号球先进去,到筒子底部(进栈)。然后2号球接着进去,在你不拿出2号球的情况下,你是无法拿走1号球。

而拿走球的操作就是出栈咯

9楼:匿名用户

压栈:就是进栈的意思,也就是把元素放到栈中去。出栈:当然就是取出栈中元素的意思,

10楼:匿名用户

数据结构,算法,栈的意思。栈算法的特点是先进后出

c语言的“进栈”和“出栈”是什么意思?

11楼:匿名用户

栈使用链表来实现的.如果你不懂的链表,可以先了解一下链表.

int push(stack *s,int e)//进栈

出栈是一样的.

12楼:徐璐烟子

不是的,是把指针指的位置移动了。而非是删除数据。

当把数据押入栈的时候,先移动指针,指向下一个位置,然后再押入。

当把数据押出栈的时候,先指向下一个位置,然后再押入,再移动指针。

出栈和入栈的操作顺序是相反的。一个先动指针,一个先动数据。

该图为出栈的表示图。画画板画的,粗糙了点,凑合着看吧。

c语言 进栈和出栈:

13楼:匿名用户

闲得没事干,跟你详细讲讲吧。

首先要弄明白一点,栈的结构是“先进后出“的,就像你堆积木一样,第一根放在最底层的地面上,然后一根一根往上堆。前一个放上去的总是被后一个放上去的压在底下。那我当我再想里面放一根的时候,总不能放中间或者放底下吧(除非你很无聊 很寂寞 闲的蛋疼了 先一根根把堆在上面的全部拿出来 然后把要放进去的那根放上去 最后又把刚才搬下来的有重新搬上去......

此处省去几万字)所以要往上面加东西的时候,就得放在最上面。

以上就是进栈的原理,怎么出栈呢,很简单,直接从”积木"的最顶端取下来就行了。

ok,以上比喻完了,希望你能看得明白。接下来讲程序不说积木了:),由上面的分析 我们可以知道一个道理,对于栈的操作,栈顶的元素很重要(也就是积木最上面的那根)。

为什么呢。无论是出栈还是进栈,都跟那哥们有直接的联系。你想啊,如果要是有元素要进栈的话,那么它就不能当“老顶”了,那老顶之位就要交给压在它上头那位了;如果出栈呢,它也不能当老顶了,老顶之位就要交到原来压在它底下的那个。

ok,所以一般的栈都将栈顶的那个元素所在的位置(内存地址--数组类型的,或者指针---节点类型的)视为栈的栈顶~!通过它来对栈进出进行操作。

一般来说(或者在我出生以来看到过的)栈有两种内存结构(注意是是内存结构,有的书说是存储结构,都一样一样滴),一种是连续的,一种是不连续的,连续的基本上就是数组了,不连续的基本上就是链表类型的啦。你上面的程序就是链表类型的,每个节点都有个指针指向它“底下”的节点(我觉得“底下”比下一个更容易理解)。通过这种你链我 我链它的方式,把一组数据连在一起。

进栈:int push(stack *s,int e)//进栈

14楼:匿名用户

栈使用链表来实现的.如果你不懂的链表,可以先了解一下链表.

int push(stack *s,int e)//进栈

出栈是一样的.

c语言/*……*/是什么意思

15楼:安徽电信网上营业厅

/*是c语言注释的起始标识。

在c语言中,可以使用/* */作为注释文字的起始和结束标识,在/*和*/中间的文字,将不会被编译器处理,而只是提供给其它人阅读。

/*和*/可以不处于一行。

/**/注释不可以嵌套使用,即在/*和*/中间,不可以出现其它的/*和*/。

c语言中,什么是栈,什么是堆

16楼:非常可爱

1、栈区(stack):由编译器自动分配释放,存放函数的参数值,局部变量等值。局部变量,任务线程函数之类的是放在(使用)栈里面的,栈利用率高一些。

其操作方式类似于数据结构中的栈。特别,栈是属于线程的,每一个线程会有一个自己的栈。

2、堆区(heap):一般由程序员分配释放,若程序员不释放,则可能会引起内存泄漏。注意它和数据结构中的堆是两回事,分配方式倒是类似于链表,常见的就是malloc出来的都是属于堆区,就像固定出来的区域,到free的时候才释放,有点类似全局的,静态的。

扩展资料

栈内存是由编译器自动分配与释放的,它有两种分配方式:静态分配和动态分配。

1、静态分配是由编译器自动完成的,如局部变量的分配(即在一个函数中声明一个int类型的变量i时,编译器就会自动开辟一块内存以存放变量i)。

2、动态分配由alloca函数进行分配,但是栈的动态分配与堆是不同的,它的动态分配是由编译器进行释放,无需任何手工实现。

17楼:人间一枚惆怅客

栈是系统自动分配内存的,堆是程序员自己动态申请的内存比如,你int i;i就是存放在栈内存里面比如char *p=(char*)malloc(sizeof(char));p指向的内存就是存放在堆内存里面的

希望能帮到你

18楼:圈圈叉叉叉叉圈

在c/c++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。

如果你的这两个语句是出现在全局部分,那这个i就是被存储在全局/静态存储区;如果是出现在局部某个函数里,那i就被存储的栈里面。具体可以怎么理解?

栈里的东西自动分配内存空间,自动释放内存,而堆里面的东西只要是用到内存的都要手动分配,malloc函数在这个时候就起作用了。

栈:就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。

堆:就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动**。

自由存储区:就是那些由malloc等分配的内存块,他和堆是十分相似的,不过它是用free来结束自己的生命的。

19楼:杨尘一

栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。

向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。

堆,一段完全独立于当前函数或者栈帧的内存区。如果一个函数中声明了一些变量,而且希望当这个函数完成时其中声明的变量仍然存在,就可以将这些变量置于堆中。 堆和栈相比,没那么清晰的结构性。

可以把堆可作是一“堆”小玩艺。程序可以在任何时间向这个“堆”增加新的东西,或者修改堆中已有的东西。

20楼:匿名用户

**中使用的普通变量、数组、指针等,使用的都是称作“堆”的内存,而调用函数时传递的参数则使用“栈”内存。这是系统管的事,一开始,编程者没必要关心这方面的内容。

21楼:务远祝烟

堆栈是一种执行“后进先出”算法的数据结构。

设想有一个直径不大、一端开口一端封闭的竹筒。有若干个写有编号的小球,小球的直径比竹筒的直径略小。现在把不同编号的小球放到竹筒里面,可以发现一种规律:

先放进去的小球只能后拿出来,反之,后放进去的小球能够先拿出来。所以“先进后出”就是这种结构的特点。

堆栈就是这样一种数据结构。它是在内存中开辟一个存储区域,数据一个一个顺序地存入(也就是“压入——push”)这个区域之中。有一个地址指针总指向最后一个压入堆栈的数据所在的数据单元,存放这个地址指针的寄存器就叫做堆栈指示器。

开始放入数据的单元叫做“栈底”。数据一个一个地存入,这个过程叫做“压栈”。在压栈的过程中,每有一个数据压入堆栈,就放在和前一个单元相连的后面一个单元中,堆栈指示器中的地址自动加1。

读取这些数据时,按照堆栈指示器中的地址读取数据,堆栈指示器中的地址数自动减

1。这个过程叫做“弹出pop”。如此就实现了后进先出的原则。

堆栈是计算机中最常用的一种数据结构,比如函数的调用在计算机中是用堆栈实现的。

堆栈可以用数组存储,也可以用以后会介绍的链表存储。

下面是一个堆栈的结构体定义,包括一个栈顶指针,一个数据项数组。栈顶指针最开始指向-1,然后存入数据时,栈顶指针加1,取出数据后,栈顶指针减1。

#define

max_size

100typedef

intdata_type;

struct

stack

;在c++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。

栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。

堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动**。

自由存储区,就是那些由malloc等分配的内存块,他和堆是十分相似的,不过它是用free来结束自己的生命的。

全局/静态存储区,全局变量和静态变量被分配到同一块内存中,在以前的c语言中,全局变量又分为初始化的和未初始化的,在c++里面没有这个区分了,他们共同占用同一块内存区。

常量存储区,这是一块比较特殊的存储区,他们里面存放的是常量,不允许修改(当然,你要通过非正当手段也可以修改,而且方法很多.

汇编语言中什么是压栈出栈,汇编语言中的栈,压栈,出栈是什么意思

1楼 匿名用户 栈是一种线性数据结构,它遵循后进先出的顺序。有一个指针总指向栈顶。打个比方 一个栈就相当于一个桶,入栈就是向里面装东西,先装的在下面后装的在上面,装一个指针就会加1,指向新装的东西,出栈就相当于取出东西,只有先取上面的,再取下面的,当取一个后指针就会减一,即指针始终指向桶里最上面那个...

汇编语言中的栈,压栈,出栈是什么意思

1楼 匿名用户 就像一个装乒乓球的盒子,只有一个口能打开 里面一个球不放,就是空栈 往里面放一个球,就是压栈 从里边拿一个球,就是出栈 都放满了,就是满栈,再放就会溢出 2楼 匿名用户 栈就是分配的一些连续的内存空间 注意是连续的压栈就是把一个数据放到栈中的顶部,然后依次往上叠,就和叠一堆书一样出栈...

在c语言里,参数的压栈和出栈分别是什么意思

1楼 匿名用户 压栈是进栈,把元素放到栈里面 出栈,把元素从栈中取出。 栈是先进后出。举个例子,一个装羽毛球的筒子,一边能开一边不能开,1号球先进去,到筒子底部 进栈 。然后2号球接着进去,在你不拿出2号球的情况下,你是无法拿走1号球。 而拿走球的操作就是出栈咯 2楼 匿名用户 压栈 就是进栈的意思...