笔者刚接触这个的时候, 也是糊里糊涂,特意去查找了许多资料,自以为已经了解,不想仍是只在此山中,云深不知处。
通常的解释是:i++先运算,再自增;
++i先自增,再运算。
一定程度上,这两句话是对的。但笔者这里想说的是,笔者赞同第二句话,却不认可第一句话。我们来看一个简单的例子:
执行完语句后b=0,i=1,相信这个大家都没有疑惑。那么,请看下面:int i=0; int b=0; b=i++;
执行完语句后,i等于什么呢,?很多人都说是1,笔者曾经也这么认为 。按照先运算,再自增的说法,先执行i=i,此时i仍等于0,接着再执行i++,此时i等于1。然而放到机器上一运算,傻眼了,最后的结果i仍等于0。为什么呢,笔者认为i++真正的执行顺序是先自增,再把自增前的值运算,可以这么理解i=i++这个过程:int i=0; i=i++;
如果理解有误,欢迎大家指正。//i=i++的理解 int temp=i; i++; i=temp;