代码:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main() {
int a = 1;
char* p = &a;
if (*p == 1) {
printf("小端\n");
}
else {
printf("大端\n");
}
return 0;
}
结果:
原因:
int a= 1的32位表示是0x00001234,大小端存储方式如图所示:
char*指向的类型占一个字节,所以p会截取一个字节的内存,如果是大端存储,即截取到0x00,打印输出0,若是小端存储,p截取的为0x01,打印输出1。