#include "stdio.h" int main() { int x, y = 5, z = 5; x = y == z; printf("%d", x); getchar(); return 0; }
(A) 0
(B) 1
(C) 5
(D) Error del compilador
Respuesta: (B)
Explicación: El quid de la cuestión radica en la afirmación x = y==z. El operador == se ejecuta antes que = porque la precedencia de los operadores de comparación (<=, >= y ==) es mayor que el operador de asignación =.
El resultado de un operador de comparación es 0 o 1 según el resultado de la comparación. Dado que y es igual a z, el valor de la expresión y == z se convierte en 1 y el valor se asigna a x a través del operador de asignación.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA