linguagem C

Se uma x variável se encontrar isolada ++x e x++ são equivalentes?

No código abaixo usar pré-incremento ou pós-incremento não fará diferença:

#include <stdio.h>
int main() {
  int x = 0;
  x++; // ou ++x
  printf("%d\n", x);
  return 0;
}

Não é que x++ e ++x sejam equivalentes no caso acima. O que acontece é só que vc não verá os efeitos deles em ação.

Pós-incremento

#include <stdio.h>
int main(void) {
  int x = 0;
  int y = x++;
  printf("%d, %d\n", x, y); // imprime 1, 0
  return 0;
}

No caso acima o valor de x será armazenado em y e, em seguida, x será incrementado.

Pré-incremento

#include <stdio.h>
int main(void) {
  int x = 0;
  int y = ++x;
  printf("%d, %d\n", x, y); // imprime 1, 1
  return 0;
}

No caso acima x será incrementado e, em seguida, seu valor (já incrementado) será armazenado em y.

2 curtidas