书籍文库  |  文档资料  |  最近更新  |  MAP  |  TAG  | 
注册
手机版
泳坛夺金开奖结果查询
当前位置:泳坛夺金开奖结果查询 > 电脑办公 > 电脑设计 > 程序设计 > 二维数组元素的地址

泳坛夺金三数中多少钱:二维数组元素的地址

分享人:小泽健次 来源:互联网 时间:2018-06-19 阅读:0

泳坛夺金开奖结果查询 www.shf9e.cn   一维数组元素的地址大家都比较容易理解,但对于二维数组,就很容易搞混了.今天我又被这个问题给弄糊涂了,翻了翻老谭的书本,对这个问题有了更深的认识.

  首先给出一个二维数组a,它的定义为:

  1. int a[3][4] = {{1,3,5,7}, {9,11,13,15}, {17,19,21,23}};  

  a数组包含3个行元素,a[0],a[1],a[2].而每个行元素又是一个一维数组,它包含4个元素.

  从二维数组的角度来看,a代表二维数组首元素的地址,现在的首元素不是简单的整型,而是由4个整型元素所组成的一维数组,因此a代表的是首行(序号为0的行)的首地址.同理,a+1代表序号为1的行的首地址.如果二维数组的首行的首地址为2000,一个整型数据占4个字节,则a+1的值应该是2000+4*4=2016.a+1指向a[1],或者说a+1是a[1]的首地址,*(a+1)等价于a[1].如下图

  a[0],a[1],a[2]既然是一维数组名,则a[0]代表一维数组a[0]中第0列元素的地址,即&a[0][0];同理a[1]的值是&a[1][0],a[2]的值是&a[2][0];

  那么a数组0行1列元素的地址怎么表示呢?a[0]是一维数组名,该一维数组中序号为1的元素的地址显然应该用a[0]+1来表示,如下图.

  前已叙述,a[0]和*(a+0)等价,a[i]和*(a+i)等价.因此a[0]+1和*(a+0)+1都是&a[0][1].进一步分析,a[0][1]的值则为*(a[0]+1),*(*(a+0)+1)或者*(*a+1).

  通用的表示:*(a[i]+j),*(*(a+i)+j)是a[i][j]的值.可以这样理解:行指针a纵向移动i到达到a+i,然后解引用得到*(a+i),即a[i]——列指针,然后列指针a[i]横向移动j步到达(a[i]+j)),最后解引用得到*(a[i]+j),即a[i][j];

  更多例子参见下表.

   一个有趣的现象是a+1和*(a+1)都是2016,其实不难理解,它们都是地址,a+1指向a中序号为1的行的首地址,而*(a+1)是a[1],指向的是a[1][0],两者实际上是相同的位置.

   书中用一个军训班长和排长点名的问题形象地说明了这类的问题.

  一个排分3个班,每个班站成一行,这样就相当于一个二维数组.为方便比较,班和战士的序号也从0开始.班长点名以人为单位,从第0个战士开始,移动一步走过一个战士.排长点名以班为单位,检查该班是否到齐,排长每走一步走过一班的战士.班长的移动是横向的,排长的移动是纵向的.班长"指向"战士,排长"指向"班,班长相当于列指针,排长相当于行指针.


百度搜索“就爱阅读”,专业资料,生活学习,尽在就爱阅读网www.shf9e.cn,您的在线图书馆!

热点阅读

网友最爱

  • 月销过万!赛道疾驰! 吉利帝豪GL竞争力解析 2019-02-21
  • 持久战是真打,因为会有清单被逐步落实。美国与中国一样不希望两败俱伤的真打,现在还是叫板中,以增加今后谈判筹码。由于我顺差太大,打不多久就没得打了。所以要来个速决 2019-02-21
  • 寻找三秦非遗:二月二,大荔县阿寿村药王庙会赛花馍 2019-02-19
  • 【攻克深度贫困系列综述之三】激发脱贫内生动力 2019-02-08
  • 第二届衡水旅发大会9月在武强举行 2019-01-24
  • 苹果高管驳斥iPhone计划报废说 iOS 12就是证据 2019-01-16
  • 西藏已具备血液核酸检测能力 2018-12-29
  • 北京:走进高考阅卷现场 2018-12-29
  • 他帖子里的明理,就是要人们放弃自己的利益,一切顺从别人的指挥棒转 2018-12-26
  • 科技赋能助力医保革新,平安开启商保服务新模式 2018-12-21
  • 价格更具优势 5款进口车年内将国产上市(1) 2018-12-21
  • 总览传奇般的——波尔多八大酒庄柏图斯波尔多 2018-12-18
  • 这样的帖子写主贴反驳,实在丢不起人! 2018-12-18
  • “五毒月”禁忌应当学 竹林日记(0074) 2018-11-30
  • “中国式创新”刷新汉语词库 2018-11-30
  • 822| 300| 660| 9| 870| 597| 388| 667| 392| 701|