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楼 匿名用户 压栈 就是进栈的意思...