union中的内存分配

来源:互联网 发布:网络写手 签约 编辑:程序博客网 时间:2024/05/16 16:24

在union联合体中,所有的变量是公用一个内存的,即以最大内存变量作为整个union的内存空间进行申请。同时也服从内存对其的策略,即如果同时又一个char和一个int类型,则占据4个字节的内存空间,最低字节就是char所对应的值,而如果单纯的只给char变量赋值,则int型变量的高三个字节是未定义的。

#include<iostream>using namespace std;union CC{int c;char m;};int main(){cout<<"*************************"<<endl;CC x;x.m=0xAA;cout<<hex<<(x.c)<<endl;cout<<int('a')<<endl;system("pause");return 0;}

输出为CCCCCCAA,其中CC表示VS2010编译器在栈中未定义变量的初始值。

0 0
原创粉丝点击