关于c的小问题,请帮忙~~~

TTC 2002-03-20 02:07:06
int x,y,z;
y=z=-1;
x=-z---y;
printf("%d\n",x);

这段代码的结果是2,我搞不清楚到底怎么来的,请各位指教~~~
...全文
27 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
TTC 2002-03-20
  • 打赏
  • 举报
回复
多谢各位~~~给分啦~~
kaitty 2002-03-20
  • 打赏
  • 举报
回复
由于c语法是左结合的,所以
x = -z ---y等价于 x = -(z--)-y;
lightning 2002-03-20
  • 打赏
  • 举报
回复
o.没看到
lightning 2002-03-20
  • 打赏
  • 举报
回复
x= ((-z)--) - y
hhdsq 2002-03-20
  • 打赏
  • 举报
回复
其实就是x=-z-y,z--不用管它(因为它是后置递减,在参加运算后才开始递减的)。
所以x=1+1=2,没什么问题啊
WingfireWu 2002-03-20
  • 打赏
  • 举报
回复
steps:

x = -(z--) - y = -(-1) - (-1) = 2

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧