Cuanto queda valiendo k? (Siendo "i" y "j" igual a 4)
int k=5+i++*++j;
El resultado de la expresion en el eclipse me da 25, pero si le saco el postincremento a "i" tambien me da 25 :S .
k = 5+i++*++j;
k = 5+([{(4)++}*++]4);
k = 5+([{(5}*++]4);
k = 5+([5]4);
k = 5+(20);
k = 25;
jejeje what the fuck!
Si pones estó daria igual.
k = 5+i++*j;
Entonces el preincremento de "j" es inutil?
Emmm pues cuando pones i++, siendo i igual a 4, seria 5, pero a la hora de la multiplicacion, no se antepone de una variable así que supongo que seria ++ eq a 1. Entonces multiplica [(4)++ * ++], que seria igual a [(4 + 1) * 1].
Eso es lo que pienso yo, no sé si será así, ya que nunca habia visto una expresion como esa... Por cierto, porque la usas?
Bueno gracias por tu respuesta, pero no la uso yo, sino que es de un ejercicio..
respuesta:
k=25
i++ es una post-suma, lo que al hacer el calculo se queda como 4
++j es una pre-suma, lo que al hacer el calculo se queda como 5
y despues por orden de calculo va la multiplicacion
4*5=20
20+5=25
k=25
ahora creo q esta mejor explicado.