A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© macau 中级黑马   /  2015-1-9 23:26  /  821 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

学习笔记,总结和归纳的多维数组与数指针中的---多维数组的地址
01.多维数组元素的地址
      指针变量可以指向一维数组中的元素,也可以指向多维数组中的元素,多维数组的指针比一维的要复杂些。
      定义一个二维数组a,它有3行4列,如
          int  a [3] [4] = { { 1,3,5,7 } , { 2,4,6,8 } , { 10,12,14,16 } };
               a是一个数组名,a 数组包含3行,即3个元素:a[0]、a[1]、a[2]。每一个元素又是一个一维数组,它包含4个元素(即4个列元素)。
               a代表二维数组元素的首地址,即a代表是首行(第0行)的首地址,a+1代表第一行的首地址(即a[1]的地址),a+2代表第二行的首地址。
               从二维数组的角度来看,a[0],a[1], a[2] 代表一维数组,也相当于一维数组的数组名(即首地址),即&a[0][0] 。a[1] 的值是&a[1][0] ,a[2]的值是&a[2][0] 。
            注意:
                     区分a+1与a[0]+1是不同的,a+1是序号为1d的行的首地址,a+1指向序号为1的行,而*(a+1)或a[1]+0都指向1行0列元素。
                     *(a+i)只是a的另一种表示形式,不能简单的认为*(a+i)是a+i所指单元中的内容。在一维数组中a+i指的是一个数组元素的存储单元,在该单元中有具体的值;而二维数组中,a+i不是指向具体的存储单元,是指向行。二维数组中,a+1、a [ i ] 、*(a+i)、& a [ i ] 、& [ i ] [ 0 ] 的值相等,即他们是同一地址值。
               
您需要登录后才可以回帖 登录 | 加入黑马