大端法小端法与union

      《UNXI网络编程》定义:术语“小端”和“大端”表示多字节值的哪一端(小端或大端)存储在该值的起始地址。小端存在起始地址,即是小端字节序;大端存在起始地址,即是大端字节序

废话就不说了,直接代码

#include<stdio.h>
union key
{
int a;
char s[2];
}Q;
int main()
{
Q.a=0x4142;
printf("%c\n%c",Q.s[0],Q.s[1]);
return 0;
}
执行结果:B  A。

X86体系是小端模式的,比如0X8975,则89存在大地址端,而75存在小地址端,与我们习惯相近。由于union共享内存,所以就输出了B  A,若是大端法则会输出两个空

再看个代码:

union Y  {  

struct {int a,int b,int c}x;

int k;}

int main()

{

Y t;

t.x.a=1;

t.x.b=2;

t.x.c=3;

t.k=8;//此时,t.x.a被修改,被修改成了8

}

 

你可能感兴趣的:(UNION)