i++, ++i , i = i+1 效率问题

来源:互联网 发布:at指令集的gprs源码 编辑:程序博客网 时间:2024/05/17 02:19
计算机内部实现过程有别,详细如下:
i=i+1的过程相当:
  temp=i+1; i=temp;
i++的过程相当:
  temp=i; i=temp+1; return temp;
++i的过程最简单:

  i增1然后return i 的值,一步完成,没有给任何temp变量赋值:


效率问题:(如果编译器优化,效率一样

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  +=1 , x = x +1, 同样适用于指针操作  如 char *x = “hello”; 


原创粉丝点击