i++和++i 的学习
Posted ^~~^
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了i++和++i 的学习相关的知识,希望对你有一定的参考价值。
在<<C++ Primer>> 第四版 5.5中讲解到:
++i:返回操作之后的结果,且是个左值。
i++:返回操作之前的结果,且是有右值。
1 // 2_3.cpp : 定义控制台应用程序的入口点。 2 // 3 4 #include "stdafx.h" 5 #include <iostream> 6 7 8 using namespace std; 9 10 int main() 11 { 12 int i(0), j(0); 13 cout << ++i << endl; 14 cout << j++ << endl; 15 return 0; 16 }
执行结果如下:
i++:先保存这个值本身,以便于返回未加1时的值。对于int型对象或者指针,编译器可以优化,但是对于复杂类型,这样的额外工作会损耗性能。
++i:将这个值加1,然后返回加1后的结果。
以上是关于i++和++i 的学习的主要内容,如果未能解决你的问题,请参考以下文章
[Codeforces Round #522 (Div. 2, based on Technocup 2019 Elimination Round 3)][C. Playing Piano](代码片段