增量和减量运算符

Ash*_*osh -1 c increment

#include <stdio.h>

int main()
{
  int x = 4, y, z;
  y = --x;
  z = x--;
  printf("%d %d %d", x, y, z);
}
Run Code Online (Sandbox Code Playgroud)

输出: 2 3 3

有谁能解释一下?
什么i =+ j意思(假设i = 1j = 2)?

Jak*_*kob 9

y = --x 表示"将x减1,然后将结果存储为y"

z = x-- 表示"保存x的临时值.将x减1.将临时值存储在z中"

因此:

  • x从4开始.
  • 它减少了1(到3).3存储在y中.
  • x保存到temp.x再次降低(至2).然后temp(3)存储在z中.
  • y和z打印为3,x打印为2.


And*_*mas 6

后缀递减运算符(x--)在递减之前返回变量的值.

  • x = 2,因为你已经减少了两次.
  • y = 3,因为从4递减之后你已经将它赋值为x
  • z = 3,因为从3递减之前已将其指定为x的值 .