网站大量收购独家精品文档,联系QQ:2885784924

数组指针字符串C语言程序设计-第4章.pptVIP

数组指针字符串C语言程序设计-第4章.ppt

  1. 1、本文档共10页,可阅读全部内容。
  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文档。上传文档
查看更多

行指针和列指针定义一个二维数组intarray[3][4]来说明,由于二维数组可以看作特殊的一维数组,其中每一个元素又是一个一维数组,所以可以把数组array看作是由array[0]、array[1]、array[2]三个元素组成的特殊一维数组,而array[0]、array[1]、array[2]又可以分别看作一维数组,所以array[0]、array[1]、array[2]也表示一维数组的起始地址。既然array和array[0]、array[1]、array[2]都表示地址(指针),它们之间有什么区别呢?区别就在于array+1指向的是第2行元素的起始地址,也就是array[1]指向的地址,而array[0]+1指向的是元素array[0][1]的起始地址。array每加1,就跳过一行,所以被称为行指针,而array[0]、array[1]、array[2]被称为列指针。通过运算符*将行指针转换成列指针array与array[0]相等,*array+1与array[0]+1是相等的,这里*只是将行指针转换成了列指针,*array还是表示地址,而不是取地址的内容。若要取元素array[0][0]的内容,可以用*array[0]或**array,这里**array的后一个*表示先将行指针转换成列指针,前一个*表示取内容。array[0]+1和*(array+0)+1,是array[0][1]的地址,那么,*(array[0]+1)就是array[0][1]的值。同理,*(*(array+0)+1)或*(*array+1)也是array[0][1]的值。*(array[i]+j)或*(*(array+i)+j)是array[i][j]的值。务请记住*(array+i)和array[i]是等价的。21array、array+i、array[i]、*(array+i)、*(array+i)+j、array[i]+j都是地址。(array[i]+j)、*(*(array+i)+j)、array[i][j]是二维数组元素array[i][j]的值。指向包含4个元素的一维数组的指针voidmain(){inta[3][4]={{1,3,5,7},{9,11,13,15},{17,19,21,23}};int(*p)[4],i,j;p=a;cinij;couta[i][j]=*(*(p+i)+j)endl;}多维数组的地址可作函数参数传递在用指针变量作形参以接受实参数组名传递来的地址时,有两种方法:①用指向变量的指针变量;②用指向一维数组的指针变量。有一个班,3个学生,各学4门课,计算总平均分数,以及第n个学生的成绩。用函数average()求总平均成绩,用函数search()找出并输出第i个学生的成绩。0201voidaverage(float*p,intn);1voidsearch(float(*p)[4],intn);2voidmain()3{4floatscore[3][4]={{65,67,70,60},5{80,87,90,81},{90,99,100,98}};6average(*score,12);//求12个分数的平均分7search(score,2);//求第2个学生成绩8}901voidaverage(float*p,intn)02{03float*p_end;04floatsum=0,aver;05p_end=p+n-1;06for(;p=p_end;p++)07sum=sum+(*p);08aver=sum/n;09coutaverage=averendl;10}}for(i=0;i4;i++)coutthescoreofNo.n{cout*(*(p+n)+i);are:endl;inti;voidsearch(float(*p)[4],intn)STEP5STEP4STEP3STEP2STEP1指针数组就是由指针组成的数组,也就是说数组中的每个元素都是相同数据类型的指针变量。指针数组的声明方式和普通数组相似:数据类型说明符*数组名[常量表达式];例如:char*pc[5];声明了一个一维指针数组,其中包括5个元素,均为指向字符类型的指针指针数组voidmain(){ intline1[]={1,0,0};intline2[]={0,1,0};intline

文档评论(0)

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

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档