#include
int main(void)
{
int a[10][10] = {5};
printf(" %p \n %p \n %p \n", a+0, *(a+0), *(*(a+0)));
printf(" %p \n %p \n %p \n", a, *(a), *(*(a)));
printf("+++++++++++++++\n");
printf("&a[0][0] %p \n", &a[0][0]);
printf(" a[0][0] %p \n", a[0][0]);
return 0;
}
a是二维数组的名字,存放的就是第一个数字的首地址。二维数组名字的使用
参见:http://tech.163.com/05/0823/11/1RR94CAS00091589.html
二维数组相当于一个一维数组里面的元素都是一维数组;二维数组名也相当于一个二级指针。一维数组:*a=a[0]; 二维数组: **a=*a[0]=a[0][0];通俗点写就是a=&a[0], a[0]=&a[0][0],因为&a[0]==&a[0][0] ,所以a于*a指向同一个地址&a[0][0],则**a==a[0][0]