¿Cuál es el resultado del siguiente código ‘c’ suponiendo que se ejecuta en una máquina Little Endian con dirección de bytes?
#include <stdio.h> int main( ) { int x; char *ptr; x = 622,100,101; printf("%d", (*(char *)&x) * (x % 3)); return 0; }
(A) 622
(B) 311
(C) 22
(D) 110
Respuesta: (D)
Explicación: En las máquinas little endian , el último byte de la representación binaria del tipo de datos multibyte se almacena primero.
Entonces, x = 622,100,101 se almacenará como 101,100,622 (el byte inferior se almacenará primero).
Por lo tanto, el valor impreso será 101.
#include <stdio.h> int main( ) { int x; char *ptr; x = 622,100,101; printf("%d", (*(char *)&x) * (x % 3)); return 0; }
La opción (D) es correcta.
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