+=与-=运算符混合计算解析:

int x = 3;
x += x -= x -= x += x -= x;
详解:算数运算按运算符优先级运算,从右至左计算。

1. x=x-x; 实际为 3 - 3 计算结果为0;
2. x=x+x; 实际为 3 - 0,0是第1步结果,计算结果为3;
3. x=x-x; 实际为 3 - 3,3是第2步结果,计算结果为0;
4. x=x-x; 实际为 3 - 0,0是第3步结果,计算结果为3;
5. x=x+x; 实际为 3 + 3,3是第4步结果,计算结果为6。

表达简化后:x=x+(x-(x-(x+(x-x))));
总结:表达式里面运算符优先级相同,显示x初始值都为3,从右到左计算,最终x为6.

*,+,+=,-=运算符混合计算解析:

int y = 4;

y += y * (y += y) + y + y *
(y -= y + 1);

详解:算数运算符等级:

等级    符号    名词                 结合性

1         ()        圆括号              从左到右

3          *           乘                  从左到右

4         +           加                  从左到右

14      +=   混合赋值运算符    从右到左

14      -=    混合赋值运算符    从右到左

按运算符规则计算:

1.分析先计算+=的右边y * (y += y)
+ y + y * (y -= y + 1);

2.分析从左至右分解y * (y += y) + y + y * (y -= y + 1);

3.最先计算y * (y += y)。最终分析步骤如下:

1,2:y*(y=y+y);实际为4*(4+4),计算结果为32,y=8;

3:32+y;实际为32+8,计算结果为40,y=8;

4,5,6:y*(y-=y+1);实际为8*(8-(8+1)),计算结果为-8,y=-1;

7:40+(-8),计算结果为32.y=-1;

8:y=y+32 ,实际为4+32,计算结果为36,y=-1.

最终y结果为36.表达式简化后:y=y + y * (y = y+y) + y + y*(y = y
- (y+1));

总结:熟悉运算符优先等级,按步骤解析表达式一步一步计算。注意-=,+=计算后会修改掉变量的值。

备注:
作者:Shengming Zeng
博客:http://www.cnblogs.com/zengming/

本文是原创,欢迎大家转载;但转载时必须注明文章来源,且在文章开头明显处给明链接。
<欢迎有不同想法或见解的同学一起探讨,共同进步>

最新文章

  1. tp的极光推送demo
  2. JavaScript:window窗口对象
  3. linux安装sqlcmd登录sqlserver
  4. 剑指Offer06 旋转数组的最小值
  5. linux 5.5 开xmanager远程
  6. How To Create a New User and Grant Permissions in MySQL
  7. 一些css小用法总结(持续更新~)
  8. BaseAdapter自定义适配器——思路详解
  9. 老去的JEE,焕发生命
  10. how tomcat works 读书笔记 十一 StandWrapper 上
  11. python &#39;%r&#39;或者&#39;{!r}&#39;的意思
  12. 『Python CoolBook』C扩展库_其六_线程
  13. 图片的Base64编码
  14. 第一个Django项目
  15. Word文档中多个编号放同一行的方法(非技术)
  16. Logback中文文档(一):介绍
  17. 判断一个请求是否为Ajax请求
  18. linux 用户管理,用户权限管理,用户组管理
  19. 【WPF】设置ListBox容器Item的流式布局
  20. Hook ptrace 调试加入了ptrace函数的程序

热门文章

  1. 一张图让你学会Python
  2. SWIFT中隐藏TableView多余的分隔线
  3. Python 日志管理封装
  4. sql,去重
  5. Java第八次作业--数据库编程
  6. I.MX6 ar1020 SPI device driver hacking
  7. 备份Windows密钥,重装后免费激活系统教程
  8. leetcode-3-LongestSubstringWithoutRepeatingCharacters
  9. FZU OJ 1075 :分解素因子
  10. JavaScript高级程序设计——闭包