#include<stdio.h> int main() { int a; char *x; x = (char *) &a; a = 512; x[0] = 1; x[1] = 2; printf("%d\n",a); return 0; }
¿Cuál es el resultado del programa anterior?
(A) Dependiente de la máquina
(B) 513
(C) 258
(D) Error del compilador
Respuesta: (A)
Explicación: La salida es 513 en una máquina little endian. Para comprender esta salida, deje que los números enteros se almacenen usando 16 bits. En una máquina little endian, cuando hacemos x[0] = 1 y x[1] = 2, el número a se cambia a 00000001 00000010 que es la representación de 513 en una máquina little endian.
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