int i=0;
int j=i++;对于上边的代码,大家都知道最终j=0,i=1,之前为了方便记忆,记它的口诀是先赋值再递增,以区别于j=++i(先递增再赋值),所有理解中就有了这么一个执行顺序:
int i=0;
int j=i;
i++;再来看看今天的代码:
int i=0;
i=i++;再按之前的理解,那么i最终的结果就应是1,但正确的结果是i为0!所以上边的理解自然就是错的,正确的理解方式应从运算顺序来解释,i=i++的运算顺序是从右到左,那么执行顺序就应为:
1) i++;//运算结果为0,i的值为1
2) i=0;//将第一步的运算结果赋值给i
这样就解释了为什么i的值为0🙂
评论(0)
暂无评论。