C语言程序设计案例教程-刘小华-7.4指向二维数组的指针.pptxVIP

C语言程序设计案例教程-刘小华-7.4指向二维数组的指针.pptx

  1. 1、本文档共31页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言程序设计案例教程-刘小华-7.4指向二维数组的指针

指向二维数组的指针 CONTENTS 目 录提出问题 引入新课自主学习 明确考点案例分析 交流提升仿真演练 体验探索 提出问题 引入新课PART 01 1、 一维、二维数组的组成各包括几个层次;2、一维数组元素的地址与值的表示方法提出问题 引入新课 自主学习 明确考点PART 02 1、二维数组把数据的组织分成三个层次:一是整个由行和列组成的二维数组,二是二维数组中的行,三是二维数组每行中的单个元素。三个层次之间具有由上至下包含或由下至上形成的关系:二维数组包含若干行,一行包含若干个元素;若干元素形成一行,若干行形成一个二维数组。考点一:二维数组的结构层次与二维数组元素的地址 2、二维数组元素的地址设有整型二维数组int a[3][4]={{0,1,2,3},{4,5,6,7},{8,9,11,12}};设数组a的首地址为1000,各下标变量的首地址及其值如图所示。考点一:二维数组的结构层次与二维数组元素的地址1000a[0][0]01002a[0][1]11004a[0][2]21006a[0][3]31008a[1][0]41010a[1][1]51012a[1][2]61014a[1][3]71016a[2][0]81018a[2][1]91020a[2][2]111022a[2][3]12 C语言允许把一个二维数组分解为多个一维数组来处理。因此数组a可分解为三个一维数组,即a[0],a[1],a[2]。每一个一维数组又含有四个元素。例如a[0]数组,含有a[0][0],a[0][1],a[0][2],a[0][3]四个元素。数组及数组元素的地址表示如下:考点一:二维数组的结构层次与二维数组元素的地址1000a[0][0]01002a[0][1]11004a[0][2]21006a[0][3]31008a[1][0]41010a[1][1]51012a[1][2]61014a[1][3]71016a[2][0]81018a[2][1]91020a[2][2]111022a[2][3]12a[0]a[1]a[2]100010081016 考点一:二维数组的结构层次与二维数组元素的地址从二维数组的角度来看,a是二维数组名,a代表整个二维数组的首地址,也是二维数组0行的首地址,等于1000。a+1代表第一行的首地址,等于1008。如图:a[0]是第一个一维数组的数组名和首地址,因此也为1000。它表示一维数组a[0][0] 号元素的首地址,也为1000。a[0][0]是二维数组a的0行0列元素首地址,同样是1000。因此,a,a[0] ,a[0][0],*(a+0)是等同的。a1000a+11008a+21016 同理,a+1是二维数组1行的首地址,等于1008。a[1]是第二个一维数组的数组名和首地址,因此也为1008。a[1][0]是二维数组a的1行0列元素地址,也是1008。因此a+1,a[1], a[1][0] ,*(a+1)是等同的。由此可得出:a+i,a[i],a[i][0],*(a+i)是等同的。考点一:二维数组的结构层次与二维数组元素的地址另外,a[0]也可以看成是a[0]+0,是一维数组a[0]的0号元素的首地址,而a[0]+1则是a[0]的1号元素首地址,由此可得出a[i]+j则是一维数组a[i]的j号元素首地址,它等于a[i][j]。10000100211004210063100841010510126101471016810189102011102212aa+1a+2a[0]a[0]+1a[0]+2a[0]+3 3、二维数组的元素由a[i]元素可以用*(a+i)表示,则a[i]+j可表示为*(a+i)+j。由于*(a+i)+j是二维数组a的i行j列元素的首地址,所以,该元素的值就用*(*(a+i)+j)表示。考点一:二维数组的结构层次与二维数组元素的地址二维数组多种地址的表示形式:例如:有定义 int a[3][4],*p=a;表示形式含义a[i]+j,*(a+i)+j,a[i][j],p[i]+j第i行第j列元素的地址*( a[i]+j) , *(*(a+i)+j) ,*( a[i][j]) ,*( p[i]+j)第i行第j列元素的值 考点一:二维数组的结构层次与二维数组元素的地址 【例1】用指针输出二维数组 #includestdio.hmain(){ int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};int i,j; for(i=0;i3;i++) { for(j=0;j4;j++) printf(“%5d”,*(*(a+i)+j)); printf(“\n”); }} 运行结果为:1 2 3

您可能关注的文档

文档评论(0)

1243595614 + 关注
实名认证
文档贡献者

文档有任何问题,请私信留言,会第一时间解决。

版权声明书
用户编号:7043023136000000

1亿VIP精品文档

相关文档