i++和++i的区别是什么?

从汇编看i++和++i的区别:b=++a:
add [a],1;
mov eax,[a]
mov [b],eax

b=a++:
mov eax,[a]
mov [b],eax
add [a],1
mov是赋值指令,eax是寄存器由于两个内存中的变量无法直接赋值需要先存到寄存器上。简单理解为i++是先使用后自增,++i是先自增再使用,但比较笼统,i++不一定先调用后自增,比如if(i++>6) break;
此处i的值先保存到编译器自动插入的临时变量上,然后i自增,最后用临时变量的值跟6比较(调用)如果++i就不会产生临时变量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值