Операторы инкремента и декремента - PullRequest
0 голосов
/ 08 октября 2010
#include <stdio.h>

int main()
{
  int x = 4, y, z;
  y = --x;
  z = x--;
  printf("%d %d %d", x, y, z);
}

Выход: 2 3 3

Может кто-нибудь объяснить это?
А что означает i =+ j (предположим, i = 1 и j = 2)?

Ответы [ 12 ]

0 голосов
/ 08 октября 2010
y = --x;

X уменьшается, затем Y присваивается значение X (3)

z = x--;

Z присваивается значение X (3), X уменьшается (2)

0 голосов
/ 08 октября 2010

Постфиксный декремент (x--) отличается от префиксного декремента (--x).Первые возвращают значение x, затем уменьшают его;последний уменьшает и затем возвращает значение.

И если вы поймете, как постфикс написан на низком уровне, вы обнаружите, что он медленнее, чем префикс ...:)

...