i++与++i这两个都可以整体看作是对变量i做的运算,只不过运算与返回的次序不同。没懂不要紧看下面的详解。
i++: 功能是使i加一,但是返回的是原始(还未加一时)的i。++i:功能是使i加一,返回的是加一后的i。
以下有几个示例:
vector<int> nums = { 3, 4,5, 10,6,7 ,7, 1,1, 5 };
int i = 0;
cout << nums[i++] << endl; // output: 3
cout << nums[++i] << endl;// output: 5
cout << i << endl;// output: 2
int j = i++;
cout << j << endl;// output: 2
cout << i << endl;// output: 3
上述例子由概念不难理解。重点讲下以下几个例子:
// 接着上面的程序,此时 i=3.
if (i == ++i) {
cout << "(i == ++i) = true" << endl;
}// output: (i == ++i) = true
cout << i << endl;// output: 8
// 同理有以下:
if (i++ == i++) {
cout << "(i++ == i++) = true" << endl;
}// output: (i++ == i++) = t

本文详细介绍了C++中i++和++i两种自增操作符的区别,强调了它们的返回值及运算顺序。++i会使变量先加一再返回新值,而i++则返回原始值后再进行加一。通过实例解释了运算优先级问题,并建议在编程中如果没有特殊需求,使用++i以避免潜在的bug。
最低0.47元/天 解锁文章

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



