递增运算问题.

hackhua 2008-11-03 08:46:26
a=--b+++c

应该怎么理解??

是(--b)+(++c) ,还是(--b)++ (+c) 还是????
...全文
84 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
lann64 2008-11-03
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 yifanfeng0913 的回复:]
不同的编译器结果可能不同,不要太拘泥于这些语法
[/Quote]
oh?有可能吗?优先级是c++标准制订的,有可能有编译器不遵循标准?
请教有哪个编译器结果会不同?
yifanfeng0913 2008-11-03
  • 打赏
  • 举报
回复
不同的编译器结果可能不同,不要太拘泥于这些语法
lann64 2008-11-03
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 hackhua 的回复:]
是呀 直接编译会出错,, 加了括号就OK

(--b)+++c

到这样的话 又是怎样呢

是(--b)++ +c 还是 (--b)+ ++c ??? 谢谢.
[/Quote]
当然是前一个,说过后自增优先级高于+的
hackhua 2008-11-03
  • 打赏
  • 举报
回复
嗯 .刚刚测试了. 的确是(--b)++ +c~~ 谢谢哈..
zapdos 2008-11-03
  • 打赏
  • 举报
回复
搞错,不好意思...
我说一下自己的看法吧
应该是先入栈,这时从左到右
应该是
(--b)++
c
出栈时才作运算
所以是(--b)++ +c
zapdos 2008-11-03
  • 打赏
  • 举报
回复
据说编译器不同会出现不同的结果
如果按正常的出入栈顺序
应该是
++c
--b
b+c
hackhua 2008-11-03
  • 打赏
  • 举报
回复
是呀 直接编译会出错,, 加了括号就OK

(--b)+++c

到这样的话 又是怎样呢

是(--b)++ +c 还是 (--b)+ ++c ??? 谢谢.
lann64 2008-11-03
  • 打赏
  • 举报
回复
a=--b+++c
对于内置类型,这玩意能通过编译吗?
从优先级考虑后自增优先级高于前自减,都高于+,这个式子可以解释成--(b++)+c,可是b++返回的不是左值了,对于非左值前置自减出错,无法编译。
hackhua 2008-11-03
  • 打赏
  • 举报
回复
所以是--b + ++c 吗??
hackhua 2008-11-03
  • 打赏
  • 举报
回复
单纯的运算呢. 不懂捏..! 不懂运算的过程是怎样.
zapdos 2008-11-03
  • 打赏
  • 举报
回复
而且++--这些应该用于左值
zapdos 2008-11-03
  • 打赏
  • 举报
回复
就是运算符优先级和出入栈顺序的问题吧

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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