让我们看这个示例代码:
#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 进行比较。
对吗?