++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
- ++i和i++的根本区别
- i++和++i的区别
- "i++"和"++i"的区别
- ++i 和 i++ 的区别
- i++和++i的区别
- i++和++i的区别
- i++和++i的区别
- i++和++i的区别
- i++和++i的区别
- i++和++i的区别
- ++i和i++的区别
- i++和++i的区别
- ++i和i++的区别
- i++和++i的区别
- i++和++i的区别
- ++i和i++的区别
- i++和++i的区别
- i++和++i的区别
- Thread之脏读
- windows2003 IIS6 部署MVC3和MVC4程序
- Android NDK的简单例子
- react -native 自定义按钮
- vi编辑器的使用 linux命令
- ++i和i++的根本区别
- android.view.InflateException: Binary XML file line #6: Error inflating class com.marshalchen.ultima
- STM32 CAN 通信 滤波设置问题
- NDK编译FFmpeg库(windows下Eclipse )
- IntelliJ IDEA---和JBOSS的结合
- Atitit 外包管理规范attilax总结
- Struts2核心工作流程
- XX-Net项目,免费浏览谷歌的伟大项目
- 17 - 01 - 21 计算机网络(11)(地址解析协议)