++i和i++的根本区别

来源:互联网 发布:日本旅游花费 知乎 编辑:程序博客网 时间:2024/05/22 08:00
至于++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在单独的语句中结果是一样的。       

简单而言: ++i 在 i 存储的值上增加一并向使用它的表达式 ``返回" 新的, 增加后的值; 而 i++ 对 i 增加一, 但返回原来的是未增加的值。

引用于 百度知道 https://zhidao.baidu.com/question/590293842.html

0 0
原创粉丝点击