x=x+1,执行顺序如下:
- 读取右x的地址
- x+1
- 读取左x的地址
- 将右表达式的值传递给左x
【注】编译器不会认为左右x的地址相同
【注】该表达式不会强制转换,且效率最低
1 short x=86; 2 x=x+1;//编译器会出错,因为右边相加后是int型
x+=1,执行顺序如下:
- 读取x的地址
- x+1
- 将得到的值传给x(因为x的值已经读出)
【注】会强制转换,效率其次
1 short x=86; 2 x+=1;//编译正确
x++,执行顺序如下:
- 读取x的地址
- x自增1
【注】x++为递增运算,其效率最高