谢谢!

解决方案 »

  1.   

    a 代表a[3][4]的首地址 即&a[0][0]
    而a[3][4]是一个二维数组,所以*a相当于*(a[0]),所以指向的地址也是a[0][0].
      

  2.   

    a[0]是一个一维数组。*a即代表a[0]的首地址,也即a[0][0]的地址。
      

  3.   

    a[i][j]=*(*(a+i)+j)
    i=0 j=0时 *a=&a[0][0] 即a是a[0][0]的地址 或者说是第一行第一个元素的地址
    而a又表示数组的首地址
      

  4.   

    a[i][j]=*(*(a+i)+j)
    i=0 j=0时 *a=&a[0][0] 即*a是a[0][0]的地址 或者说是第一行第一个元素的地址
    而a又表示数组的首地址
      

  5.   

    地址是一样的,但意义不一样
    a代表二维数组的首地址,是数组名
    *a代表a[0][0]的首地址,你可以参见谭浩强<C语言>有详细解释
      

  6.   

    a 代表a[3][4]的首地址 即&a[0][0]
    *a代表的是数组的第一个元素,即a[0]
    a[0]是一个一维数组,那么a[0]代表的是该一维数组的第一个元素的地址,而该一维数组的第一个元素是a[0][0],那么a[0]代表&a[0][0]
    所以……
      

  7.   

    "a[i][j]=*(*(a+i)+j)
    i=0 j=0时 *a=&a[0][0] 即*a是a[0][0]的地址 或者说是第一行第一个元素的地址
    而a又表示数组的首地址"
    这个解释好理解,呵呵