www.zhblog.net

递增、递减、指定运算


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

int i = 0;

i = i + 1;
printf("%d\n", i);

i = i - 1;
printf("%d\n", i);

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

int i = 0;
printf("%d\n", ++i);
printf("%d\n", --i);

其中写在变量i之前的++--就是 C 的递增运算符(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;
printf("%d\n", num);

num = --i;    // 相当于i = i - 1; num = i;
printf("%d\n", num);

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

int i = 0;
int num = 0;

num = i++;    // 相当于num = i; i = i + 1;
printf("%d\n", num);

num = i--;     // 相当于 num = i; i = i - 1;
printf("%d\n", num);

在这段程序中,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



展开阅读全文

评论

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 心情