📜  C C++中的预增量和后增量(1)

📅  最后修改于: 2023-12-03 15:13:44.773000             🧑  作者: Mango

C/C++中的预增量和后增量

在C和C++的语言中存在着自增和自减运算,分别表示操作数的自加和自减,其中又分为前自增和后自增两种,即++ii++,同样的道理适用于自减运算。这里我们着重探讨前自增和后自增的不同之处。

前自增运算

前自增运算是指将操作数加1,并返回加1后的结果。具体形式为++i,其运算方式与i = i + 1完全等价。

#include <iostream>

using namespace std;

int main() {
    int i = 1;
    cout << ++i << endl;  // 输出2
    cout << i << endl;   // 输出2
    return 0;
}
后自增运算

后自增运算是指将操作数加1,但返回加1前的结果。具体形式为i++,其运算方式与int temp = i; i = i + 1; return temp;等价。

#include <iostream>

using namespace std;

int main() {
    int i = 1;
    cout << i++ << endl;  // 输出1
    cout << i << endl;   // 输出2
    return 0;
}
不同之处

因为前自增和后自增的返回值不同,因此在使用时需要注意。下面是一个常见的例子:

int i = 1;
int j = i++;  // 等价于 int j = i; i = i + 1;

此时j的值为1,i的值为2,因为后自增运算返回的是加1前的结果,所以赋值给j的是加1之前的i的值。

而如果替换为前自增运算:

int i = 1;
int j = ++i;  // 等价于 i = i + 1; int j = i;

此时j的值为2,i的值为2,因为前自增运算返回的是加1后的结果,所以赋值给j的是加1之后的i的值。

总结

前自增运算和后自增运算的不同在于返回值是加1前还是加1后的结果,因此在使用时需要注意。