首页 > 技术文章 > i++和++i 的学习

lucy-lizhi 2017-03-01 22:20 原文

在<<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后的结果。

 

推荐阅读