C语言关于共用体知识的考查

有一道课后习题不会,不懂为什么结果是这个,临近期末,希望各位大神可以帮忙解答一下
代码如下

#include<stdio.h>
union un
{
int i;
char c[2];
}
main()
{
union un x;
x.c[0]=10;
x.c[1]=1;
printf("\n%d",x.i);
}

程序的执行结果为266
我想问一下为什么解答的结果是266,是怎么算出来的,希望各位大神可以解答一下,救救孩子呜呜呜

因为内存字节序是低字节在前,高字节在后
union中所有变量共享内存块
所以c[0]=10,c[1]=1后,union的内存存储的四个字节内容分别是 0x0A 0x01 0x00 0x00,那么转换为int值就是266。其中0x01是高字节,相当于256,然后0x0A是低字节,因此int值就是256+10 = 266