求值顺序问题

boy8765 2003-08-11 07:30:21
对于形如*++-ptr的表达式的求值顺序问题。有这样两种意见。
第一种:先计算*。也就是先把*++-ptr看作*(),对于()里的东西——++-ptr,再看作++(),对于第二个()里的部分——-ptr,再把-ptr看作-(ptr).也就是说,对于表达式*++-ptr,就是以这样的顺序来计算的*(++(-(ptr))).
第二种意见是:由于*、++、-、这三个均是单目运算符,均是右结合性[(所谓右结合性就是参数的运算顺序是从右到左,也就是说,先计算右边的运算符。),你们认为我写的这个概念是否正确?]对于本例而言,就是先算-(ptr),得到一值,设为A。再算++(A),得一值,设为B,然后再计算*B。综上所述,即为*(++(-(ptr))).
请问网友:你们认为何种意见是正确的。或者你们可能认为这两种都是错的,请给出你们的正确答案。谢谢!
...全文
19 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
jack_wq 2003-08-11
  • 打赏
  • 举报
回复
一般是第一种
hillyee 2003-08-11
  • 打赏
  • 举报
回复
关注,学习中。
leafxx 2003-08-11
  • 打赏
  • 举报
回复
写这样的代码有意义么,没有意义么?

不同的编译器会有不同的答案...

69,371

社区成员

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

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