title: memory layout - C union
body: <p>I have a union type of array of three integers (4 bytes each), a float (4 bytes), a double (8 bytes) and a character (1 byte).</p>
  
  <p>if I assign 0x31313131 to each of the three integer elements and then printed the union's character, I will get the number 1. Why ? </p>
  
  <p>I don't understand the output I know that the bits of 3 0x31313131 is
  001100010011000100110001001100010011000100110001001100010011000100110001001100010011000100110001</p>