Evaluación de la siguiente expresión.
El siguiente fragmento de código:
int i=-3,j=2,k=0,m;
m=++i && ++j || ++k;
Se puede evaluar utilizando dos conceptos, creo:
1.Como el operador ++ tiene mayor prioridad que los operadores lógicos, por lo que primero se evaluarán todos los operadores de incremento, luego && tendrá mayor prioridad que || será computado. En este proceso, k será incrementado.
2. Se evaluará el primer operador de &&. Para este ++ i y ++ j se computará. Dado que el resultado del operador de && es 1, no hay necesidad de evaluar el ++ k.Así que k no se incrementará.
Cuando lo intento en un sistema, el resultado demuestra que el razonamiento 2 es correcto y 1 equivocado. ¿Por que es esto entonces?