i++的一些解释

两个内存块,part1和part2,i开始存在part1内
int i = 0;
int j = i++;
首先系统会把原来i的值拷贝一份到part2,这时候part1和part2都0,然后把part1的值赋给j,i指向了part2,同时part2的值加1,所以最后是j=0,i=1;
你如果写i=i++那么会有一个等于1的值丢失。
C语言中是:如果把i的值赋给j那么最后i和j都指向同一块内存,所以结果都为1

原文地址:https://www.cnblogs.com/lxh520/p/8125028.html