很多初学者看到++i和i++都会想到一句话,++i是先递增再赋值,i++是先赋值再递增,仅仅凭这一句话很容易出错,只有真正理解他们在内存中的运算过程,才能更准确的理解。让我们看一个例子。
关于++i和i++的易错点
上面这行代码,如果按照那句口诀的理解是i=i;i=i+1;然后输出1,然而结果是i=0;
所以如果每次都按照口诀走,很容易出错。
我们先看一下执行过程,执行i++时,先对i赋值,在计算
关于++i和i++的易错点
这个时候i还是等于i的,至于i+1可以理解成计算出来了没有赋值,所以最后输出的是0。++i也是一样,只不过是++i是计算好了之后,赋值。注意赋值的顺序,总结来说就是,i++是得到的计算前的值而++i得到的是计算后的值。
然后我们再举一个例子
关于++i和i++的易错点
输出i为3.
这个例子需要注意的是,i++做运算时取的是运算前的值但是它本身也会执行,所以1+2=3输出3.

相关文章: