失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > int i=1 j=2; int k=i+++j;

int i=1 j=2; int k=i+++j;

时间:2023-04-16 16:57:30

相关推荐

int i=1 j=2; int k=i+++j;

因为运算符优先级为++大于+

所以第二条语句应该是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改变了

如果觉得《int i=1 j=2; int k=i+++j;》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。