大端序小端序问题

#include 
int main(void)
{
     int array[] = {1, 2, 3, 4, 5};
     int *p = (int *)((int)array + 1);

     printf("%d\n %x\n", *p, *p);
     return 0;
}

输出结果:
33554432
2000000

分析:
大端序小端序问题_第1张图片
大端序小端序问题_第2张图片

测试方法:

void bigOrSmall(void)
{
int data = 0x12345678;
char * p = (char *)&data;
if(0x78 == *p)
     printf("small\n");
else
     printf("big\n");
}


//或者
union  data
{
     int a;
     char b;
};

void bigOrSmall(void)
{
union data  da ;
da.a = 0x12345678;
if(0x78 == da.b)
     printf("small\n");
else
     printf("big\n");
}

你可能感兴趣的:(c语言)