递增、递减、指定运算


在程序中对变量递增 1 或递减 1 是很常见的运算,例如:

int i = 0;
i = i + 1;
cout << i << endl;
i = i - 1;
cout << i << endl;

这段程序会分别显示出 1 与 0 两个数,您也可以这么写这个程序:

int i = 0;
cout << ++i << endl;
cout << --i << endl;

其中写在变量i之前的++--就是递增运算符(Increment operator)与递减运算符(Decrement operator),当它们编写在变量之前时,其作用就相当于将变量递增 1 与递减 1:

++i;    // i = i + 1;
--i;    // i = i - 1;

可以将递增或递减运算符编写在变量前或后,但两者有差别,将递增(递减)运算符编写在变量前时,表示先将变量的值加(减)1,然后再传 回变量的值,将递增(递减)运算符编写在变量之后,表示先返回变量值,然后再对变量加(减)1,例如:

int i = 0;
int num = 0;
num = ++i;   // 相当于i = i + 1; num = i;
cout << num << endl;
num = --i;    // 相当于i = i - 1; num = i;
cout << num << endl;

在这段程序中,num的值会前后分别显示为 1 与 0,再看看下面这段:

int i = 0;
int num = 0;
num = i++;    // 相当于num = i; i = i + 1;
cout << num << endl;
num = i--;     // 相当于 num = i; i = i - 1;
cout << num << endl;

在这段程序中,num的值会显示前后分别为 0 与 1。

接下来看指定运算符(Assignment operator),到目前为止我们只看过一个指定运算符,也就是=这个运算符,事实上指定运算符还有以下的几个:

  • +=:a += b 就是 a = a + b
  • -=:a -= b 就是 a = a - b
  • *=:a *= b 就是 a = a * b
  • /=:a /= b 就是 a = a / b
  • %=:a %= b 就是 a = a % b
  • &=:a &= b 就是 a = a & b
  • |=:a |= b 就是 a = a | b
  • ^=:a ^= b 就是 a = a ^ b
  • <<=:a <<= b 就是 a = a << b
  • >>=:a >>= b 就是 a = a >> b



展开阅读全文