联合体大小端存储
发布时间
阅读量:
阅读量
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。
那么问题来了,这一现象背后的原因与两个关键概念密切相关:联合体以及大小端存储方式。
联合体
联合体是一种实现存储空间共享的机制,允许通过多种方式对其进行访问。也可以将其视为一种存储区域
全部评论 (0)
还没有任何评论哟~
