C | Operadores | Pregunta 1 – Part 8

#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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *