所以我看到了一些关于如何找到一个架构的字节顺序的例子。假设我们有一个指向int数据类型的整型指针。假设int值是0x010A0B12。在一个小端结构中,最低有效字节,即12,将被存储在最低存储器地址中,对吧?因此,一个4字节整数中的最低字节将为12.类型铸造字符指针指向整数指针
现在,开始检查。如果我们声明一个char指针p,然后将整型指针转换为一个char *并将其存储在p中,并打印p的解除引用值,那么我们将得到关于该体系结构字节顺序的线索。如果它是12,我们是小端的; 01表示大端。这听起来真的很整齐...
int a = 0x010A0B12;
int *i = &a;
char *p = (char*)i;
printf("%d",*p); // prints the decimal equivalent of 12h!
几个问题在这里,真的。由于指针是强类型的,不应该将字符指针严格指向char数据类型?和%d打印有什么关系?我们不应该用%c打印字符吗?
相关:http://stackoverflow.com/questions/34826036/confused-about-pointer-dereferencing?noredirect = 1&lq = 1 –