C语言程序设计教程:指针.ppt

  1. 1、本文档共50页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

【例8.5】通过指针变量输出二维数组元素,分析下列程序输出结果。8.2.2指向二维数组的指针程序如下:#includestdio.hvoidmain(){inta[3][4]={1,2,3,4,5,6,7,8,9,10,11,12},*p;inti;p=a[0][0];for(i=0;i12;i++)printf(%d,*(p+i));}程序运行结果:1234567891011128.2.2指向二维数组的指针(2)通过行指针访问二维数组:C语言定义行指针的方法如下:类型说明符(*行指针名)[列]如:int(*p)[3];/*指针p为指向一个由3个元素所组成的整型数组指针*/说明:括号中的*表明p是一个指针,它指向一个数组,数组的类型为整型一维数组[4]。在定义中,圆括号是不能少的,否则它是指针数组。8.2.2指向二维数组的指针【例8.6】用行指针输出二维数组,并将数组中的最大元素及所在行列号输出。程序如下:#includestdio.hvoidmain(){ inti,j,m,n,max; inta[3][4]={1,2,3,4,5,50,7,8,122,10,11,12}; int(*p)[4];/*定义p为指向一个有4个元素的一维数组的指针变量*/ p=a;/*p指向第0行*/ max=p[0][0];/*将第一个元素送max*/ 8.2.2指向二维数组的指针for(i=0;i3;i++) { for(j=0;j4;j++) { if(max*(*p+j))/*将大数存入max,并记下其下标*/ { max=*(*p+j); m=i;n=j; } } p++;/*移动指针使其指向下一行*/ } printf(a[%2d][%2d]=%5d,m,n,max);}1、给字符指针赋值的方法:8.2.3指向字符串的指针C语言也可以用字符指针指向一个字符串,使用方法主要有以下几种:(1)通过赋初值使指针指向一个字符串char*ps=″Hello!″;/*赋初值是一个字符串常量*/此时,是对字符指针变量进行初始化。字符指针指向的是一个字符串常量的首地址,即指向字符串的首地址。8.2.3指向字符串的指针(2)通过赋值运算使字符指针指向字符串char*ps;ps=″Hello!″;(3)也可以通过将指针变量之间的赋值使指针指向字符串。例如:char*ps1,*ps2=″Hello!″;ps1=ps2;使ps1也指向了ps2所指向的字符串。即两个字符指针指向的是一个字符串常量的首地址。2、通过字符指针访问字符串:8.2.3指向字符串的指针当字符指针指向一个字符串时,char*ps=″ABCDEF″;则在程序中,可以使用以下语句操作字符指针以访问字符串数据:ps++;/*指针ps加1*/*(ps+i)/*取字符串中的字符*/ps=abcdef.;/*使指针指向新的字符串常量*/注意:(1)当字符指针重新指向另一个字符串时,原来的字符串即丢失。(2)不能用字符指针修改字符串中的字符数据。因为字符串本身是一个常量。例如:*ps++=’a’;/*不能通过字符指针向字符串中的任意位置赋值*/8.2.3指向字符串的指针【例8.7】分析下列程序,采用3种方式输出字符串。8.2.3指向字符串的指针程序如下:#includestdio.hvoidmain(){ char*ps=HelloWord!; inti; printf(%s\n,ps);/*直接输出字符串*/ for(i=0;ps[i]!=\0;i++)/*使用ps[i]一个一个输出字符,直到遇到\0*/ { putchar(ps[i]); } printf(\n); for(i=0;*(ps)!=

文档评论(0)

ning2021 + 关注
实名认证
内容提供者

中医资格证持证人

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

领域认证该用户于2023年05月10日上传了中医资格证

1亿VIP精品文档

相关文档