x=x+1,x+=1,x++的区别

x=x+1,执行顺序如下:

  1. 读取右x的地址
  2. x+1
  3. 读取左x的地址
  4. 将右表达式的值传递给左x

【注】编译器不会认为左右x的地址相同

【注】该表达式不会强制转换,且效率最低

1 short x=86;
2 x=x+1;//编译器会出错,因为右边相加后是int型

x+=1,执行顺序如下:

  1. 读取x的地址
  2. x+1
  3. 将得到的值传给x(因为x的值已经读出)

【注】会强制转换,效率其次

1 short x=86;
2 x+=1;//编译正确

x++,执行顺序如下:

  1. 读取x的地址
  2. x自增1

【注】x++为递增运算,其效率最高

原文地址:https://www.cnblogs.com/qijunhui/p/8284188.html