木子屋 Dnawo's BLOG

int i=0;i=i++;结果解析

👤 dnawo 📅 2008-12-30 👁 6021 👍 0 💬 0 🔄 本站原创
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)

暂无评论。

计算题
评论需审核通过后显示
← 上一篇 select列表项选中 下一篇 → 使用ildasm查看MSIL代码