运算符优先级经典题c+=c++;
来源:互联网 发布:nba历届全明星mvp数据 编辑:程序博客网 时间:2024/06/07 13:11
此程序的运算结果为0;public class TestClass1 {public static void main(String[] args) {int c=0;for(int i=1;i<=100;i++){c+=c++;}System.out.println(c);}}
要想理解这道题,一定首先要明白=的运算级别是最低的,还有就是c++是先使用c后执行++操作!
那么首先将c+=c++展开来:c=c+c++;这时候就是看运算优先级的关系了,我感觉这时候定义一个缓冲区能够很好的理解这道题;首先定义一个 int buf;
那么原式可以分解为:
buf=c;//buf=0;
c=c+1;//上面两句等价于buf=c++;执行后结果 buf=0;c=1;
c=buf+buf;//然后把buf相加重新赋值给c,所以c=0
我感觉上面的分解步骤,很好的把这道题给理解了,也对运算符的优先级运算理解的很清楚了!
0 0
- 运算符优先级经典题c+=c++;
- c 运算符 优先级
- c 运算符 优先级
- C运算符优先级
- c运算符优先级
- C运算符优先级
- C运算符优先级
- C运算符优先级
- c运算符优先级
- c运算符优先级
- C运算符优先级
- C运算符优先级
- C运算符优先级
- C运算符优先级
- c运算符优先级
- C 运算符优先级
- C运算符优先级
- c 运算符 优先级
- IK Analyzer分词工具(转载)
- 正则表达式
- 时间 日期 相关类
- java中跳出多重循环的方法
- 反射机制
- 运算符优先级经典题c+=c++;
- 算法知识点
- 十进制,二进制,八进制的相互转换
- Firefox 将让多进程功能开放给更多使用者使用
- HashMap使用小结
- springmvc+hibernate基础学习二
- 《Docker……》笔记-6 网络基础配置
- 【Activiti工作流】1.工作流概念
- Oracle监听出现的问题总结,以及解决办法