博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
int i=1,j=2; int k=i+++j;
阅读量:6061 次
发布时间:2019-06-20

本文共 429 字,大约阅读时间需要 1 分钟。

因为运算符优先级为++大于+
所以第二条语句应该是k=(i++)+j
分解为下面的步骤
1.i+j;(由于i++是先使用i值在表达式中进行运算,再自加1)
2.k=第1步的结果3;

3.i++;(i从1自加为2)

这样,再深究一点:

为什么 j=++i+++i+++i 输出j是10?

j=(++i)+(++i)+(++i)=(((++i)+(++i))+(++i))

计算机在计算j=(a+b)+(c+d)+(e+f)先计算(a+b)+(c+d),并把结果存储(例如:存储在j中),然后再计算j+(e+f)=j;
所以计算机先计算了两个++i(前两项i为3,++i先于+号);也就是j=3+3;然后j=6+(++i)(最后的i为4),也就是j=6+4=10。
首先++i=2,再计算第二个++i=3,此时计算机里i=3,第一个i也=3,第二个i也=3,因为计算机里只有一个i,因此原式=(3+3)+4=10,记住计算机里只有一个i,算第二个时第一个i改变了

转载地址:http://hytrx.baihongyu.com/

你可能感兴趣的文章
Java:看一波线程池,反正也不亏
查看>>
centOS6.1 安装配置nginx
查看>>
highcharts的自学方式以及动态模拟实时数据
查看>>
swift3 0 懒加载控件的时候添加点击事件无效
查看>>
类炸弹人3V3游戏完整源码分享
查看>>
微信小游戏体验之打飞机改造计划
查看>>
阿里45K高级Java岗,必备技能清单
查看>>
伪类与伪元素的区别
查看>>
Java 多线程 - Synchronized 和变量并发访问
查看>>
爬虫利器-Puppeteer初探
查看>>
Java集合详解4:HashMap和HashTable
查看>>
读书笔记 --- JavaScript语言精粹
查看>>
python面向对象
查看>>
前端小知识10点(2019.4.14)
查看>>
Shell脚本启动java
查看>>
关于使用git push -u origin master将本地仓库推送到远程仓库时出现的问题
查看>>
java多线程编程chap1-2
查看>>
html5新标签总结
查看>>
知名编程语言或系统的发展简史
查看>>
反射对单例模式的破坏
查看>>