运算问题

菜丸子 2017-09-02 05:06:04
int g=5;
int x7 = g + (g++ + g) + g;
输出:22

g++ +g 之后g=6
6+11+6=23,为什么输出为22呢
...全文
200 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Lax_RZ 2017-09-03
  • 打赏
  • 举报
回复
int g=5; int x7 = g + (g++ + g) + g; 输出:22 g=5------>5+(g++ + g)+g; g=5(运算后自增)------->5+(5+g)+g; g=6----------------->5+(5+g)+g; g=6----->5+(5+6)+g; g=6--------->5+(5+6)+6;
珍惜最爱的你 2017-09-03
  • 打赏
  • 举报
回复
5+(5+6)+6=22 中间的g++改成++g就是23了
windskuy 2017-09-03
  • 打赏
  • 举报
回复
引用 4 楼 cheidou123 的回复:
引用 1楼梦轮回未知的远方 的回复:
g + (g++ + g) + g;第一个g的值是5第二个也是5,因为第二个g进行了++运算。所以第三第四个都是6
大佬们,根据优先级运算符不是先算括号里的吗
运算顺序从左往右
菜丸子 2017-09-02
  • 打赏
  • 举报
回复
引用 1楼梦轮回未知的远方 的回复:
g + (g++ + g) + g;第一个g的值是5第二个也是5,因为第二个g进行了++运算。所以第三第四个都是6
大佬们,根据优先级运算符不是先算括号里的吗
菜丸子 2017-09-02
  • 打赏
  • 举报
回复
大佬们,根据优先级运算符不是先算括号里的吗
weixin_40066981 2017-09-02
  • 打赏
  • 举报
回复
前两个是5后两个是6,g++先参与运算再自增,++g是先参与运算再自增吧
  • 打赏
  • 举报
回复
g + (g++ + g) + g;第一个g的值是5第二个也是5,因为第二个g进行了++运算。所以第三第四个都是6

51,411

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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