#include<stdlib.h>
#include<stdio.h>
union UN{
int i;
char c[4];
}u = {134480385};
int main(void){
printf("%p,%d\n%p,%d\n%p,%d\n%p,%d\n",&u.c[0],u.c[0],&u.c[1],u.c[1],&u.c[2],u.c[2],&u.c[3],u.c[3]);
system("pause");
return 0;
}
小端存储和大端存储
- 大端与小端是用来描述多字节数据在内存中的存放顺序,即字节序。大端(Big Endian)指低地址端存放高位字节,小端(Little Endian)是指低地址端存放低位字节。
- 需要记住计算机是以字节为存储单位。
- 为了方便记忆可把大端和小端称作高尾端和低尾端,eg:如果是高尾端模式一个字符串“11223344”把尾部“44”放在地址的高位,如果是地尾端模式,把“44”放在地址的低位。
各自优势:
- Big Endian:符号位的判定固定为第一个字节,容易判断正负。
- Little Endian:长度为1,2,4字节的数,排列方式都是一样的,数据类型转换非常方便。