!!!请教c语言中二维数组的数组名与指针的问题

图片说明

  &a[1][0]、a+1、*(a+1)和&(*(a+1))四个的结果相同,都是0028FF0C,那样说明*(a+1)自己本身的地址a+1跟*(a+1)存储的内容(&a[1][0])是相同的,指针*(a+1)自己指向自己,这样是可以的吗?
   还有这也说明0028FF0C这个地址上既存储着地址0028FF0C(从*(a+1)存储的内容来看)又存储着整型‘3’(从a[1][0]存储的内容来看),同一个地址存储着两个不同的元素不会冲突吗?
    ps:我理解为同一个地址但代表不同的内涵,指针*(a+1)自身的地址&(*(a+1))代表一维数组的首地址,是指向一维数组的,通过该地址来找到该一维数组的位置。a[1][0]自身的地址&a[1][0]代表整型变量a[1][0]的地址,存储在指针*(a+1)上,是指向整型‘3’的。两者虽然值都是0028FF0C,但内涵不一样。不知道这样理解对不对。

!!!!!自顶,跪求大神解疑

二维数组a[3][2]中,系统会开辟出一段连续地址的内存块,来存储123456这6个数字。a代表的首地址即a[0][0]的地址,a与a[0]的含义是一样的,只不过a+1代表的是a[1][0]的地址,而a[0]+1代表的是a[0][1]的地址。

你可以用数组指针p来输出,看看p指向的地址图片

图片说明