一、认识++操作符、--操作符
#include <stdio.h>
int main()
{
int a = 1;
int b = a++;
b++;
b = --a;
b = a--;
a++;
--a;
b = a++;
printf("a=%d\n", a);
printf("b=%d\n", b);
return 0;
}
这里上面代码的运行结果是:
a=1
b=0
在通常情况下,++操作符与--操作符在单独使用以及与其他操作符使用时,运算的方式是有一些差别的。下面我们就详细地讲述在这两种不同方法下的++与--前置后置的计算方式。
二、两种的使用方法
1、单独使用
单独使用时,与其它操作符不一起使用。在这种情况下:
a++与++a与a=a +1的结果是相同的。
a- - 与 - -a与a=a - 1的结果是相同的。
例如,我们进行下面两串程序,它们运行的结果是一样的:
int a = 0;
a++;
printf("a=%d\n", a);
int a = 0;
++a;
printf("a=%d\n", a);
2、与其它操作符复合使用(重点)
前置加加
口诀:先加一,后使用。
先取a的值,再a自增1,后与其他运算符结合。
例如:下面这个代码,先是a自增1(a现在是2),然后将a的值赋给了b,所以a、b两个值均为2。
int a = 1;
int b = ++a;
后置加加
口诀:先使用,后加一。
先取a的值,与其他运算符结合,后a自增1。
例如:下面这个代码,先将a的值赋给了b(b是1),再是a自增1(a现在是2),所以a、b两个值分别为2、1。
int a = 1;
int b = a++;
前置减减
口诀:先减一,后使用。
先取a的值,再a自减1,后与其他运算符结合。
例如:下面这个代码,先是a自减1(a现在是0),然后将a的值赋给了b,所以a、b两个值均为0。
int a = 1;
int b = --a;
后置减减
口诀:先使用,后减一。
先取a的值,与其他运算符结合,后a自减1。
例如:下面这个代码,先将a的值赋给了b(b是1),再是a自减1(a现在是0),所以a、b两个值分别为0、1。
int a = 1;
int b = a--;
所以我们可以观察到,其实不论是前置还是后置,以int b = a++ 为例,其实a的值始终都是改变的。而前后置不相同的是b的值所有改变。
而其规律是:“=”后面谁(a或者操作符)最近就是先进行哪一步。
三、相应练习
学习完了上面的代码,现在看一下下面的代码运行之后的结果是什么:
#include <stdio.h>
int main()
{
int a = 2;int b = 3;
b = a++;
a--;
b = ++a;
a = --b;
b = a--;
--a;
a++;
b = --a;
printf("a=%d\n", a);
printf("b=%d\n", b);
return 0;
}
上面代码运行的结果是:
a=0
b=0