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在单独的语句中结果是一样的。  
时间: 2024-08-06 07:58:50