i++ and ++i的误解

不知在那本书上看到 ++i比i++要快(i++需要一个临时变量存储i的值后再++),就记住这个一直没测试,所以在写代码的时候 一直就使用++i觉得它快。今天测试了下发现并不是这么回事,一直被误解。所以写了简单的demo测试了下:

int main()
{
        int a,c;
	a = 0;

	a++;
	++a;

	c =a++;
	c = ++a;

	c = a+1;
	return 0;
}
看下反汇编代码吧(Windows上):

	int a,c;
	a = 0;
00181B88  mov         dword ptr [a],0  
	a++;
00181B92  mov         eax,dword ptr [a]  
00181B98  add         eax,1  
00181B9B  mov         dword ptr [a],eax  
	++a;
00181BA1  mov         eax,dword ptr [a]  
00181BA7  add         eax,1  
00181BAA  mov         dword ptr [a],eax  
	c =a++;
00181BB0  mov         eax,dword ptr [a]  
00181BB6  mov         dword ptr [c],eax  
00181BBC  mov         ecx,dword ptr [a]  
00181BC2  add         ecx,1  
00181BC5  mov         dword ptr [a],ecx  
	c = ++a;
00181BCB  mov         eax,dword ptr [a]  
00181BD1  add         eax,1  
00181BD4  mov         dword ptr [a],eax  
00181BDA  mov         ecx,dword ptr [a]  
00181BE0  mov         dword ptr [c],ecx  

	c = a+1;
00181BE6  mov         eax,dword ptr [a]  
00181BEC  add         eax,1  
00181BEF  mov         dword ptr [c],ea
	return 0;
00181BF5  xor         eax,eax  
}

一看就明白了

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

iot-genius

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值