静态存储区 存储时地址由低向高
union Ux
{int a;
char ch[2];
}x; //空间大小为int 的4,即00000000 00000000 00000000 00000000, 该变量为全局变量,存在静态存储区
int main()
{
x.ch[0] = 1;// 先存低位00000000 00000000 00000000 00000001
x.ch[1] = 5;//再依次向高位 00000000 00000000 00000101 00000001 即1281
cout<<x.a<<endl;//1281
x.a = 769;//00000000 00000000 00000011 00000001
cout<<"x.ch[0] = "<<(int )x.ch[0]<<"\nx.ch[1] = "<<(int)x.ch[1]<<endl;//低位为1 ,然后3,再然后0, 0
return 0;
}
注: 栈则是 从高到低存储
本文深入探讨了C++中union数据成员的存储顺序特性,通过具体实例展示了如何利用这一特性实现高效内存使用,并强调了在实际编程中正确理解和运用这一概念的重要性。
2369

被折叠的 条评论
为什么被折叠?



