C语言中*的作用

elem pop(stake*s)
{if(s->top==s->base)
return ERROR;
else
--s->top;
return OK;
}
编这个的时候我开始时错吧--s->top;编程--*s->top 问下--*s->top代表什么意思

在你的问题里:
1) * 表示指针。函数参数 stake * s, 意思是 s 是一个指向stake类型变量的指针;
2)stake 是你定义的 struct 或 union 类型;
3)按C语法,s->top 表示利用指针存取Stake类型变量的成员top
4)--*s->top 是错误的。因为在表达式中 *s 的含义是:取s所指变量的内容,即取出s当前所指向stake变量的内容。 *s 表示一个stake变量,这时, 表达式 *s.top 是正确的; 而表达式 *s->top是错误的。
==========

希望对你有帮助 :)
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-09-16
s已经定义成一个指针了,也就是说你要访问这个指针所指向的结构体的成员时直接使用->就行了。
推荐阅读:http://zhidao.baidu.com/question/310763172.html?oldq=1

PS.或者--*s.top
也就是说你要明白结构体和指向结构体的指针之间的区别
第2个回答  2013-09-16
a*b:a乘b的意思
*a中*是指针符号,
如:
int b,*a;
a=&b;//把b的地址赋给a
中b是变量;a是指针变量;a存b的地址,*a存b的值。
第3个回答  2013-09-16
看下运算符的结合优先级、运算优先级
第4个回答  2020-01-13
相似回答