• c++ ++i and i++


     ++i 在 i 存储的值上增加一并向使用它的表达式 ``返回" 新的, 增加后的值; 
    而 i++ 对 i 增加一, 但返回原来的是未增加的值。
    至于++i和i++有什么区别,举个例子   
    1.a = i++; 等校为
    a = i;
    i = i + 1;

    2.a = ++i; 等校为
    i = i + 1;
    a = i;

    i++和++i的 最重要的区别大家都知道就是 +1和返回值的顺序
    但,两这还有一个区别(在C++中)就是i++在实现的时候,产
    生了一个local object
    class INT;
    //++i 的版本
    INT INT::operator++()
    {
    *this=*this+1;
    return *this;
    }
    //i++ 的版本
    const INT INT::operator ++(int)
    {
    INT oldvalue=*this;
    *this=*this+1;
    return oldvalue
    }

    所以从效率上来说++i比i++来的更有效率
    具体细节你可以看More Effective C++ 的M6
    看看C++类重载运算符就知道了。
    对于i++的实现是:
    int temp;
    temp = i;
    i = i+1;
    return temp;
    而++i的实现是:
    i = i+1;
    return i;

    比如printf("%d",i++);是先输出i值随后i自加,而printf("%d",++i);正好相反

    for(operation1;operation2;operation3)
    {
    //Do Something
    }
    都是按
    operation1
    operation2
    //Do Something
    operation3
    的顺序来执行的
    而i++与++i在单独的语句中结果是一样的。
  • 相关阅读:
    CHttpFile调试
    关于linux下网络编程socket 转换IP问题 inet_ntoa()
    vc使用SetTimer回调函数
    OpenGL+VC6.0开发环境搭建
    Java StringBuffer和StringBuilder类
    Java String类
    Java 异常处理
    hashcode()和equals()的作用、区别、联系
    抽象类可以继承实体类吗?
    Java 向上造型详解
  • 原文地址:https://www.cnblogs.com/yelongsan/p/4046569.html
Copyright © 2020-2023  润新知