让我们来看这段示例代码:
#include <stdio.h>
int main(void){
int x = 1;
if(*(char *)&x == 1) printf("little-endian\n");
else printf("big-endian\n");
return 0;
}
我之前多次看到过这个(或类似的)指令*(char *)&x
,现在我想完全理解它的含义!
我认为它的意思是:
1) 取int变量的地址
2) 然后将其强制转换为char指针
3) 然后比较“新char指针”的第一个元素与数字1。
我的理解正确吗?