程序:
cpp
#include "stdio.h"
typedef union
{
struct
{
unsigned char D1;
unsigned char D2;
unsigned char D3;
unsigned char D4;
unsigned char D5;
}u1_1;
struct
{
unsigned char D1;
unsigned char D2;
unsigned char D3;
unsigned char D4;
unsigned char D5;
}u1_2;
unsigned char Data[5];
}union_u1;
int main()
{
union_u1 U1;
U1.u1_1.D1=0X01;
U1.u1_1.D2=0X02;
U1.u1_1.D3=0X03;
U1.u1_1.D4=0X04;
U1.u1_1.D5=0X05;
for(unsigned char i=0;i<5;i++)
printf("Data[%d] = %#X \r\n",i,U1.Data[i]);
printf("=============================\r\n");
U1.u1_2.D1=0X10;
U1.u1_2.D2=0X20;
U1.u1_2.D3=0X30;
U1.u1_2.D4=0X40;
U1.u1_2.D5=0X50;
for(unsigned char i=0;i<5;i++)
printf("Data[%d] = %#X \r\n",i,U1.Data[i]);
}
运行结果:

分析:
同一个地址有三个别名
就好比如老鼠一样,英语叫mouse,在猫和老鼠又有叫杰瑞,其实都是指老鼠
