您所说的栈,是由操作系统负责管理的一段栈空间,在递归、子程序调用等处应用广泛。这是操作系统的范畴。
——并不是在C语言范畴讨论的概念。
#define STACK_INIT_SIZE 100 //c语言中定义一个常量。STACK_INIT_SIZE =100#define STACKINCREMENT 10 //c语言中定义一个常量。STACKINCREMENT =10
#include <stdio.h>
#include <stdlib.h>//包含两个头文件。stdio.h和stdlib.h
typedef struct //定义一个数据结构 里面包含三个变量,两个整型的指针,和一个整型的变量
{int *base
int *top
int stacksize}sqstack
int initstack(sqstack s) //初始化栈的函数
{
s.base=(int *)malloc(STACK_INIT_SIZE*sizeof(int)) //为s.base分配空间大小为100*2字节空间
if(!s.base) exit(-1) //如果s.base 为空推出。
s.top=s.base//不为空时则s.top=s.base.s.stacksize就赋值为100
s.stacksize=STACK_INIT_SIZE
return 1 //返回1
}
栈是一种数据存储的结构,其实跟数组,队列的存储方式是一样的,主要是它有存储的规则,就是先进后出,只在栈定操作。也就是说数据存入一个栈,取出的是最后一个存入的数据,必须从最后一个开始取。
可参考百度百科和维基百科