C | Conceptos básicos del puntero | Pregunta 7

#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

Deja una respuesta

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