### 自增自减运算符

为了方便进行加 1 和减 1 操作，C++提供了自增和自减运算符，即++和--。自增自减运算符分为前置运算和后置运算。下面通过代码来演示自增和自减运算符的应用。观察如下代码：

例如，后置自增运算符

void main()

{

int ivar = 10; //定义一个整型变量 ivar

int jvar = ivar++; //定义一个整型变量 jvar，对其进行初始化

printf("ivar = %d\n",ivar); //输出变量 ivar

printf("jvar = %d\n",jvar); //输出变量 jvar

}

执行上述代码，效果如图 1 所示。

图 1 后置自增运算

在上述的第二行代码中使用后置自增运算符，使 ivar 的值加 1，对于后置运算符来说，先进行赋值操作，然后才使变量 ivar 的值自加 1。因此，上述的代码执行后，变量 ivar 的值为 11，而变量 jvar 的值为 10。如果将第二行中的后置自增运算符改为前置自增运算符，执行效果就不同了。

例如，前置自增运算符

void main()

{

int ivar = 10; //定义一个整型变量 ivar

int jvar = ++ivar; //定义一个整型变量 jvar，对其进行初始化

printf("ivar = %d\n",ivar); //输出变量 ivar

printf("jvar = %d\n",jvar); //输出变量 jvar

}

执行上述代码，效果如图 2 所示。

图 2 前置自增运算

在上述第二行代码中使用了前置运算符，首先使变量 ivar 的值加 1，然后将其赋值给变量 jvar，因此，jvar 的值为 11。

对于自增自减运算符来说，不仅可以应用于数值型变量，还可以应用于指针变量。在开发程序时，通常使用自增运算符来实现指针遍历数组。观察如下代码：

例如，使用指针遍历数组

void main()

{

int iarray[5] = {5,4,3,2,1}; //定义一个整型数组

int *pvar = iarray; //定义一个整型指针，将其初始化为数组的首地址

for (int i=0; i<5; i++) //for 循环

{

printf("iarray[%d]= %d\n",i,*pvar++); //先输出指针数据，然后利用++使指针指向下一个元素

}

}

执行上述代码，效果如图 3 所示。

图 3 指针遍历数组

在上述代码中，“*pvar++”表达式先输出指针 pvar 的数据，然后进行“++”运算，使指针指向下一个元素。

注意：在使用自增自减运算符时，一定要注意其结合性，因为两种结合性的运算结果并不相同。