有这么一个题目:
#include <iostream> using namespace std; int main() { int i = 100; i += (i++); cout << i << endl; i = 100; i += (++i); cout << i << endl; return 0; }
输出结果是什么?
这个题目主要是考察i++和++i的区别,之前一直被这类问题困扰,一直搞不清楚这2个的区别,直到有一天看到这么一份资料:
//i++实现 最后虽然本身值改变了,但返回的是之前的值 int nTemp; nTemp = i; i = i+1; return nTemp;
//++i实现 最后本身值改变了,返回也是值本身 i = i+1; return i;于是,i += (i++);可以这样理解:
i += i; //100+100 = 200 i += 1; //200+1 = 201i += (++i);可以这样理解:
i += 1; //100+1 = 101 i += i; //101+101 = 202
所以,输出的结果是:201
202
++i和i++ 以及其底层实现
最新推荐文章于 2022-09-21 22:57:02 发布
本文通过两个具体的代码示例详细解析了C++中i++与++i的区别及应用场景,帮助读者理解自增运算符的工作原理。
2544

被折叠的 条评论
为什么被折叠?



