C语言面试题——大小端测试(一)

#include <stdio.h>
int main()
{
	int a=1;
	char * p=(char*)&a;
	if(*p==1)
		printf("Little edian\n");
	else
		printf("Big edian\n");
		return 0;
}

由于x86为小端模式,所以int a =1;之后的内存布局为

char *p = (char*)&a;之后;

显然*p的值为1,那么就打印出“Little Edian”喽~~哈哈!~~

要是大选模式,就是下面这种情况了:

这时*p就是0了。

补充:p指向的是a的起始地址:

指针p的值为0x22ff68,a的地址为0x22ff68。

原文地址:https://www.cnblogs.com/CodeWorkerLiMing/p/12007689.html