Si la precedencia de & & es mayor que la de ||, ¿no debería este código evaluar primero --b & ++ c, y por lo tanto la salida debería ser 1 2 4 11. Pero aquí parece estar en cortocircuito para dar 1 2 5 10. ¡Por favor ayuda!orden de evaluación de || y & en c
int x;
int a=1,b=5,c=10;
x=a++||--b&&++c;
printf("%d %d %d %d\n",x,a,b,c);
return 0;
Entonces, ¿cómo sabemos cuándo colocar los corchetes y cuándo no? – Ashwyn
@Ashwyn una buena regla de thum es poner corchetes donde el intento no está claro. En este caso, no es una cuestión de corchetes, IMO es bastante claro lo que sucede. –
@Ashwyn Creo que estás perdiendo el punto. Tiene razón al suponer que && es más ajustado que ||.Pero la expresión aún se evalúa de izquierda a derecha. –