i=1 i=i++
场景:关于i++;++i;i=i+1;i+=1 的效率有关问题
关于i++;++i;i=i+1;i+=1 的效率问题
1-2 x+1;
1-3 读取左x的地址;
2-2 x+1;
关于i++;++i;i=i+1;i+=1 的效率问题
(1) i=i+1
它的效率最低,因为其执行过程如下:
1-1 读取右x的地址;1-2 x+1;
1-3 读取左x的地址;
1-4 将右值传给左边的x
(temp=i+1; i=temp;)
(2) i+=1
它的执行过程是:
2-1 读取右x的地址;2-2 x+1;
2-3 将得到的值传给x
(3) i++
它的执行过程是:
3-1 读取右x的地址3-2 x自增1;
(temp=i; i=temp+1; return temp;)
(4)++i
++i的过程最简单:
4-1 i增1然后return i 的值,一步完成,没有给任何temp变量赋值。
建议写成i+=1这样效率高,不要过多地使用i++和++i,太多了会容易引起歧义~~ 建议只在循环里使用,运算的时候不要用。 |
- 1楼yewanglei昨天 18:51
- 看看