union{
int val;
char str[2];
}obj;
int main()
{
obj.str[0] = 10;
obj.str[1] = 1;
cout<<obj.val;
return 0;
}
使用小端方式存储,上述代码的输出结果为:266.
可以看到,obj.val中存储的是010a,对应的二进制位0000 0001 0000 1010,转换为十进制,(256+8+2)即为266.
为什么呢?这就要涉及两个内容:联合体和大小端存储。