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

为什么 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改变了

实际上,跟编译器也有关。

猜你喜欢

转载自blog.csdn.net/houzijushi/article/details/81152940
今日推荐