i++ 和++i 的本质区别在于计算时的赋值时间点区别。
可以参考https://blog.csdn.net/xialei199023/article/details/76383013
但是在使用的情况下,i++ 和++i的区别在于
i的值都是一样的,但是作为一个整体的i++值和++i值不一样。不用再继续考虑其他的表达式内容。
比如:
int i =0;
j=i++; //i的值会是1,j的值会是0,这个是为什么呢,因为i++的值是0,i的值是1。
再比如:
int i=0;
j=i++ + ++i; //i的值会是2,j的值会是2,这个又是为什么呢,因为i++这个整体运算完之后,i的值是1,但是i++整体是0,然后再进行++i运算,此时++i这个整体运算完之后,i是2,++i也是2。所以0+2等于2.
反正考虑的时候,把++i当做一个整体,分别考虑计算完之后整体变量的值以及i的值就好了。