内存逻辑上是一个大的字节数组,当存储大于一个字节的数据时就有字节序的问题。
大小端经常弄混,这里有种简单的记忆方法
大端 <-> 大尾端 <-> 高尾端
小端 <-> 小尾端 <-> 低尾端
看数据的尾部(这里是 0x67) 是存在内存的高地址还是低地址。当尾部存在高地址时就是高尾端(大端),否则是低尾端(小端)。
当然判断自己的电脑是大端还是小端也很简单,给一个多字节数据看看它的起始字节(内存低地址)存的是什么就行了
#include<stdio.h>
int main() {
int a = 0x01234567;
char *p = (char *)&a;
// *p = 0x67 时是小端, *p = 0x01 时是大端
printf("%x\n",*p);
return 0;
}