C | Operadores | Pregunta 16

Prediga la salida del siguiente programa:

#include <stdio.h>
int main()
{
    printf("%d", 1 << 2 + 3 << 4);
    return 0;
}

(A) 112
(B) 52
(C) 512
(D) 0

Respuesta: (C)
Explicación: La lógica principal detrás del programa es la precedencia y la asociatividad de los operadores. El operador de suma (+) tiene mayor precedencia que el operador de desplazamiento (<<). Entonces, la expresión se reduce a 1 << (2 + 3) << 4 que a su vez se reduce a (1 << 5) << 4 ya que el operador de desplazamiento tiene asociatividad de izquierda a derecha.
Cuestionario de esta pregunta

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 *