#include<stdio.h>
int main()
{
int a[2][2]={{1,2},{3,4}};
int *p;
p = a;
printf("%d,%d,%d,%d!\n",*p,*(p++),*(p++),*(p++));
printf("%d\n",a);
return 0;
}
可以看到二维数组在内存中的存储和一维数组没什么区别,a是数组的首地址。运行结果可以看到printf函数
是从右向左执行的。数据的高字节存储在内存高位。一段小代码让道理更直观。当然你也可以定义几个char,int看看内存的对齐