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

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

上一篇: select列表项选中
下一篇: 使用ildasm查看MSIL代码
文章来自: 本站原创
引用通告: 查看所有引用 | 我要引用此文章
Tags:
最新日志:
评论: 0 | 引用: 0 | 查看次数: 5496
发表评论
登录后再发表评论!