我们经常会被问到i++与++i的区别一般我们都会这样回答:i++表示,先返回再加1++i表示,先加1再返回但这只是宏观层面的,那它的底层是怎么样的呢? 我们一起探究下这样我們可以更好地理解它,知其然并且知其所以然
看下i++的反编译结果,最终是从本地的变量表中取出下标为2值为1的压入了栈中
再看++i的反编譯结果,最终是从本地变量表中取出下标为2值为2的压入了栈中
i++只是在本地变量中对数字做了相加,并没有将数据压入到操作栈将前面拿箌的数字1再次从操作栈中拿到,压入到本地变量中中++i将本地变量中的数字做了相加并且将数据压入栈将操作栈中的数据,再次压入到夲地变量中总之对比我们可以看出两者之间最终都会在本地变量表中加一,只是最后入栈的值不一样而已
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。