黑马程序员技术交流社区
标题:
关于效率的一个小问题
[打印本页]
作者:
廖理
时间:
2012-5-8 10:52
标题:
关于效率的一个小问题
本帖最后由 廖理 于 2012-5-8 10:54 编辑
int x ;
x= x+1;//1
x+=1;//2
x++;//3
这三种方式都是似的x的值增加1,那种的效率最高呢?为什么?
作者:
谭景宾
时间:
2012-5-8 11:08
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.
作者:
杨威
时间:
2012-5-8 11:10
这个以前好像在哪看过,是一道面试题来着,在效率方面是第三种最好
第一种,我们得先读出x=x+1;中左边的x的地址,加1后再读出算式中右边的x地址,将右边的值传到左边的x
第二种,我们读出x的地址,然后加1,再返回原来地址就行了
第三种,直接读出x,然后加1就完了
作者:
隋营营
时间:
2012-5-8 11:10
理论上说:x++比其它两种效率都高。而x+=1 与 x=x+1 效率差不多。
x++直接在cpu的寄存器中执行。
x+=1把 x 从内存中取出加 1 后再赋给内存中的i变量 x
但是实际应用中可以忽略这种差别了。
作者:
张成龙
时间:
2012-5-8 13:00
x++效率最高,最低的是x=x+1;
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2