Estaba navegando por Medium, y encontré esta simple declaración de problema:

int i = 4;
int j = i++;
int k = ++j;
cout << i << j << k << endl;
//output:= i= 5, j=5, k= 5

¿Cómo es eso posible? ¿Como si colocamos la i como 4, pero la salida es 5?

c++
0
Kunal Das 7 may. 2020 a las 07:02

3 respuestas

La mejor respuesta
int i = 4;     // Assigns the value 4 to i
int j = i++;   // Assigns i to j THEN INCREMENTS i; j is 4, i is 5
int k = ++j;   // INCREMENTS j THEN assigns j to k; j is 5, k is 5
4
Adrian Mole 7 may. 2020 a las 04:07

La operación de incremento posterior (i ++) siempre es asignar, luego incrementar

La operación de incremento previo (++ j) siempre es incremento, luego asigne

Entonces, en su segunda línea, i se asigna primero a j, luego aumenta. Entonces j tiene el valor original de i.

En su última declaración, j se incrementa primero y luego se asigna a k.

0
sonofel 7 may. 2020 a las 04:41

Porque, cuando se ejecuta la declaración i ++, obtuve 5;

-3
wshcdr 7 may. 2020 a las 04:05