不同的CPU和操作系统在存储多字节整数时,存储方式不一样,分为大端存储和小端存储
话不多说,直接上图,简单明了
----------------------------------------------------------------------------------------------------------------------------
大家自己分析一下图,相信大家会有一定的理解
那么大家有一定的理解了的话,不妨停下了想一想,怎么写一段代码,来判断你使用的主机是大端存储还是小端存储。
代码实现如下
#include <stdio.h>
int main(int argc, const char *argv[])
{
int a = 0x12345678;
char *p = (char *)&a;
if(0x78 == *p){
printf("小端\n");
}else if(0x12 == *p){
printf("大端\n");
}
return 0;
}
思考:小端存储的主机上,下面代码会输出什么?
int m = 0x41424344;
printf("%s\n", &m);
会输出DCBA 还是不确定的值