大端小端的存储问题,牵涉到数组和指针,C语言

#include
int main()
{
int a[i];
printf("%x\n",a);
int *p=a;
*p=0x12345678;
return 0;
}

若下面程序运行结果为bfae4d68,a[0]以大端模式如何存储,以小端模式如何存储,请用内存结构示意图表示。

有点不太了解它的内存方式

比如是一个字节,内存中八位,大端的话, 是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中,比如1234,那内存中是3412,小端正好相反

我不知道他们的内存到底是如何分配的

哦,我好像明白了后面的*p什么的完全是误导,a[0]以大端模式存储的话就是bf ae 4d 68 小端是68 4d ae bf?

笔者这段C程序有问题吧。。首先,i变量未定义;其次,C中数组大小为常量;最后printf语句在*p操作之前 , *p操作没有用处,只是调试时看下值。。

给你看个帖子,我刚刚碰到的面试题,腾讯还是百度的忘了:

http://bbs.csdn.net/topics/391823281

图片说明