Possible Duplicate:
A question about union in C
Assuming the following code:
#include <stdio.h>
int main()
{
    union a
    {
        int i;
        char ch[2];
    };
    union a u;
    u.ch[0]=3;
    u.ch[1]=2;
    printf("%d, %d, %d\n", u.ch[0], u.ch[1], u.i);
    return 0;
}
I want to know why ch[0] and ch[1] are on low order address of union. In stack if I have a Little Endian Byte they should be on higher order addresses. Can anybody explain memory representation of a union?
 
     
     
     
    