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。