tips:访问结构体内部时,如果是指针 则用 “->” 如果是结构体 则用 “.”直接访问,这是c与c++之间的区别
实现结果如下:
#include <stdio.h> #define maxsize 30 #define elemtype int #define bool int #define false 0 #define true 1 typedef struct { elemtype data[maxsize]; int top; }sqstack; //初始化栈 void initStack(sqstack *s){ s->top = -1; } //判断栈空 如果stack是空的 则返回true 否则返回 false bool empty_stack(sqstack s){ if(s.top == -1){ return true; }else{ return false; } } //进栈 bool push(sqstack *s,elemtype x){ if(s->top == maxsize-1){ return false; } else{ s->data[++(s->top)]=x; return true; } } //出栈 bool pop (sqstack *s,elemtype x){ if(s->top == -1){ return false; } else{ x=s->data[(s->top)--]; return x; } } //读栈顶元素 bool get_top(sqstack s,elemtype *x){ if(s.top == -1){ printf("this stack is null\n"); return false; }else{ *x = s.data[s.top]; return true; } } int main(){ sqstack s; initStack(&s); printf("先1 2 3 入栈 读栈顶元素 再3出栈 再读栈顶元素\n"); elemtype x=0; push(&s,1); push(&s,2); push(&s,3); get_top(s,&x); printf("第一次输出:%d\n",x); pop(&s,x); get_top(s,&x); printf("第二次输出:%d\n",x); } //注意事项:1,访问结构体内部时,如果是指针 则用 "->" 如果是结构体 则用 “.”直接访问 // 2.c中没有引用传值 // 3.c中即使用 bool 也是要先定义 c 中没有bool类型