在这里插入代码片
int check()
{
int t = 1;
return *(char*)&t;
}
int main()
{
int i = check();
if (1 == i)
printf("是小端\n");
else if (1 != i)
printf("是大端\n");
system("pause");
return 0;
}
int t=1;
return * (char *)&t
这两行代码是判断电脑是否为大小端的关键所在,首先你设定了 t 是 int 型 ,所以电脑为这个变量开辟了四个字节的空间,电脑可能把 1 存 在这四个字节的最前面 一个字节或者最后面一个字节,如果存在了最前面,那么这个电脑就是小端,存在最后面,这个电脑就是大端, 现在你 强制类型转换,把Int 型改成 char 型 (改为 char 型 ,因为32 位机每个内存格子代表一个字节,最小内存为一个字节),这样你就可以判断到底这个 1 是存在前面还是后面了。