zoukankan      html  css  js  c++  java
  • 为什么++i比i++更优更快

     

    转载自https://www.omegaxyz.com/2017/05/20/aboutippandppi/

    递增(++)和递减(–-)运算符为对象的加1和减1操作提供了简洁的书写形式。除此之外,这两个运算符还可以用于迭代器,因为很多迭代器本身不支持算术运算,所以此时递增和递减除了简介外还是必需的。

           递增和递减运算符有两种形式:前置形式和后置形式,分别对应++i和i++。运算符的前置形式是将对象加1(或减1),然后将求值后的对象作为结果,而后置形式也是将对象加1(或减1),但是求值结果是对象未作出运算的值的副本。

       int i=0,j;

       j=++i;                    //   i=1,j=1

       j=i++;                   //    i=1 , j=0

    这两种运算必需作用于左值运算对象,前置形式将运算对象本身作为左值返回,后置形式将运算对象的副本作为右值返回。

           在写代码中,如非必需,尽量避免后置形式,因为:前置形式避免了不必要的工作,它把值加1(或减1)后直接返回改变了的运算对象,而后置形式需要将原始值存储下来,以便返回这个未修改的原始值。如果我们不需要未修改的原始值时,那么后置形式的写法就是一种浪费。

          对于正数和指针类型来说,编译器可能对这种额外的工作进行了一定的优化,但是对于相对复杂的迭代器来说,这种额外的工作就消耗巨大了。所以养成前置形式的好习惯,不仅不需要担心性能问题,而且写出的代码也符合编程的初衷。

    天涯犹在,不诉薄凉。
  • 相关阅读:
    exacle文件上传
    JSONObject 转List 强制类型转换错误
    CSS属性
    Java 对象和类
    Linux 系统常用命令汇总(七) 安全设置
    Linux 系统常用命令汇总(六) 文件打包与压缩
    Linux 系统常用命令汇总(五) 磁盘管理
    Linux 系统常用命令汇总(四) 程序和资源管理
    Linux 系统常用命令汇总(三) 用户和用户组管理
    Linux 系统常用命令汇总(二) vi 文本编辑
  • 原文地址:https://www.cnblogs.com/Knight02/p/14623719.html
Copyright © 2011-2022 走看看