原帖链接
x=x+1最低,因为它的执行过程如下:
1. 读取右x的地址;
2. x+1;
3. 读取左x的地址;
4. 将右值传给左边的x(编译器并不认为左右x的地址相同).
x=+1其次,它的执行过程如下:
1. 读取右x的地址;
2. x=1;
3. 将得到的值传给x(因为x的地址已经读出).
x++最高,它的执行如下:
1. 读取右x的地址;
2. x自增1.
我觉得就是出现一次变量则要读一次内存,出现一次=则要一次赋值运算,所以x=x+1;两次读x一次赋值,效率最低。
x+=1;一次读内存一次赋值,效率居中,
x++,一次读内存,并没有赋值,效率最高