关于i++和++i的性能问题

虽然C语言是大部分人接触最早的编程语言,但是i++和++i的性能问题还是会有很多人搞混,这里简单说一下。

i++; 是一个右值,而 ++i 是一个左值。
加深印象,上述的两条语句可以用下面两个函数表示。
i++ 为

function () 

{

    tmp = i;
    i = tmp + 1;
    return tmp;

}


++i 为

function () 

{

    i = i + 1;
    return i;

}


可以参考这里获知详情。总而言之,i++ 语句需要个临时变量,去存储返回自增前的值。
不要忽略这个变量的意义,了解过 C 等“低级”语言的朋友,可能会了解变量的内部机制(重新祭奠我老去的 C 语言知识)。首先,申请(malloc)一段内存空间,然后将值塞(push,压栈)进去,最后不用了释放(free)。
大家可能在循环中会经常的使用 i++ 这样的操作。在不影响逻辑的前提下,我建议使用 ++i ,虽然这点的优化非常的小。
因此,++i的性能将比i++的性能略好。
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值