++放前后的问题 计算过程的问题


int z  =-1;

int y= z++  +  ++z;  

这里y=0 是怎么个过程 是 -1+1 还是 0+0 求大佬

在没有对象接受的情况下(++i独立出现,后方有分号结尾),i++和++i没有区别,都是自增。但有对象接受下(如输出语句,赋值),i++会先把自身的值交给传达的对象,之后内存中的值加一;++i会先将自身的值加一然后把加一后的值交给传达对象。
是-1 + 1

img

y = (z++) + (++z)

  1. 计算z++,直接返回z的值,然后再将z自增,结果为-1, z的值变成0;
  2. 计算++z,先将z自增,然后返回z的值,z的值变成1,结果为1;
  3. 所以y = -1 + 1 = 0;