栈元素入栈出栈操作(C)

元素入栈时,会先将栈压入,top指针再向上加一。C语言如何实现呢,下面是入栈的代码片段:

typedef struct node
{
    int * base;
    int * top;
    int stacksize;
}Sqstack;


void Push(Sqstack *S, int elem)//入栈
{

	*S->top++ = elem;  //元素先入栈,指针后加一

}

*S->top++ = elem,S本为指向node结构的一个指针,本来对普通结构体指针赋值或者使用用 S -> stacksize 语句就行,因为S本身存储的是该结构实例的首地址,->便可以以指针方式从S地址找到他的结构成员stacksize,但是这里为什么找结构成员top时前面加了*呢,我是这样理解的:

首先->并非是个二元字符,不应该同*比较优先级。如果认为他是个二元字符,优先级低于一元字符*,那么这里 *S -> top 就看成了 (*q) -> top,这语法便是错误的。前面博客所讲结构指针的成员赋值方式应该是

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值