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

云南农业大学《C语言程序设计》课件-第9章 指针.ppt

云南农业大学《C语言程序设计》课件-第9章 指针.ppt

  1. 1、本文档共85页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
共 84 页 第 * 页 指针法(方法1) main() {int a[3][4],b[4][3],i,j,*p,*q; p=a[0][0];q=b[0][0]; for(i=0;i3;i++) for(j=0;j4;j++) scanf(%d,p+i*4+j); for(i=0;i3;i++) for(j=0;j4;j++) b[j][i]=a[i][j]; for(i=0;i4;i++) { for(j=0;j3;j++) printf(%5d,*(q+i*3+j)); printf(\n);}} 将指针变量p,q指向两数组的开始位置 利用指针p为数组a输入数据 利用指针q输出数组b 这里的指针变量p和q都是用int *p,*q定义的 是指向整型数据的,p+1是指向p所指向的下一个元素。能否使p不是指向整型变量,而是指向一个包含m个元数的一维数组呢? 共 84 页 第 * 页 9.5.3 指向数组的指针变量 1. 定义格式 类型说明符 (*变量名)[正整型常量表达式] 2. 功能 定义一个名为“变量名”的指针变量,这个指针变量所指的对象是一个有“正整型常量表达式”个元素的一维数组。 例如:int a[3][4],(*p)[4]=a; 定义p是一个指针变量,它指向包含4个整型元素的一维数组。 p的值就是该一维数组的起始地址。 a[0] a[1] a[2] p,a p+1 p+2 共 84 页 第 * 页 [例9-3] 用指针访问数组元素。 main( ) { int a[10],*pa, i; for (i=0;i10;i++) a[i]=i+1; pa=a; for(i=0;i10;i++,pa++) printf(“%d”,*pa); printf(“\n”); } 不要忘记赋初值 共 84 页 第 * 页 [例9-4] 给定10个整数,求最大值。 main( ) { int a[10]={5,7,3,6,2,1,8,9,4,0}; int i, *p,max; p=a; max=*p++; for(i=1; i10; i++, p++ ) if (*pmax ) max=*p ; printf ( “max=%d\n”, max); } 问题:如果修改语句 for(i=1;i10; i++ ) if (*pmax) max=*p++ ; 能实现程序功能吗? 问题:如果修改语句 for(;pa+10; p++ ) if (*pmax) max=*p ; 能实现程序功能吗? 共 84 页 第 * 页 9.3.4 字符串指针与字符串 1.字符串的表示形式 用字符数组表示,如: main( ) { char string[ ]=“I love China!”; printf(“%s\n”,string); } 数组名 用字符指针实现,如: mian( ) {char * string =“I love China!”; printf(“%s\n”,string); } 把“I love China!”的首地 址赋给指针变量string 共 84 页 第 * 页 2.字符指针变量与字符数组的比较 字符数组由若干个元素组成,每个元素中放一个字符,而字符指针变量中存放的是字符串的首地址。 赋值方式: char str[ ]=“I am a boy!” 或: char str[20]; scanf(“%s”,str); 字符指针变量指向字符串首地址。赋值方法三种: (1) char *pa=“I am a boy!” (2) char *pa; pa=“I am a boy!” (3) char *pa, str[20]; pa=str; scanf(“%s”,pa);(注意空格的问题) 共 84 页 第 * 页 [例9-5] 已知下面程序的输出结果:ABCDCD,请完善程序: (请注意,首次执行时即将ABCD全体输出,输出的是字符串,而非单个字符) main() { char *chp=“ABCD”; for( ; ___A____; chp=chp+2) printf(“%s”, ___B____);

您可能关注的文档

文档评论(0)

卖报的小行家 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档