C语言完整版教学课件汇总.ppt

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
三、数组和指针使用实训 实训1 下面这个程序的功能是使用指针来实现数组的输入和输出。请在程序的空白处填入合适的内容。 main( ) {int s[10],*p,i; for(i=0;i10;i++) scanf(%d,p++); for(i=0;i10;i++) printf(%5d,*p++); } p=s; p=s; main( ) {int s[10],*p; for(p=s;ps+10;p++) scanf(%d,p); for(p=s;ps+10;p++) printf(%5d,*p); } 另一种写法: 下面这个程序的功能是实现将一维数组s[12]升序排列,在在程序空白处填入合适内容. 实训2 main( ) {int s[12],num,i,j; int *p; for(i=0;i12;i++) scanf(%d,p+i); for(i=0;i12;i++) for(j=i+1;j12;j++) if(*(p+j)*(p+i)) for( ; ;p++) printf(%5d,*p); } {num=*(p+j);*(p+j)=*(p+i);*(p+i)=num;} p=a; p=a; p=s[11]; main( ) {int s[12],num; int *p1,*p2; for(p1=s;p1s+12;p1++) scanf(%d,p1); for(p1=s;p1s+12;p1++) for(p2=p1+1;p2s+12;p2++) if(*p2*p1) {num=*p1;*p1=*p2;*p2=num;} for(p1=s;p1s+12;p1++) printf(%5d,*p1);} 另一种编写方法 小结 如果 int s[10],*p; p=s; 1、p和s都表示数组元素的首地址。 2、指向数组的指针p可以移动,如p++表示使p下移指向下一个元素。而s不可以移动。 3、因为指针p可以移动,所以要随时注意p的位置,如果需要使p重新指向第一个元素,则p=s 4、*p++:等价于*(p++)表示先得到p指向的变量的值,然后使指针p加1指向下一个元素 5、*(++p):先使指针p下移,指向下一个元素,然后取其所指向的变量的值 9.3 指针和二维数组 示例:有一个二维数组s[3][4]; S[3][4]={{12,14,11,1},{43,12,23,45},{34,43,32,12}}; 12 14 11 1 s[0] 43 12 23 45 s[1] 34 43 32 12 s[2] 1、s[0]表示第0行首地址 s[1]表示第1行首地址 s[2]表示第2行首地址 2、第i行首地址可以表示为s[i],或*(s+i)或s[i][0]; 3、二维数组名s表示二维数组第一行首地址。 12 14 11 1 s[0] 43 12 23 45 s[1] 34 43 32 12 s[2] 4、第i行第j列元素的地址可以表示为:s[i]+j; *(s+i)+j;s[i][j]; 5、第i行第j列元素的值可以表示为:*(s[i]+j); *(*(s+i)+j);*s[i][j]; 那么如何使指针指向二维数组元素呢? 一、指向二维数组元素的指针变量 示例:有一个二维数组s[3][4]; S[3][4]={{12,14,11,1},{43,12,23,45},{34,43,32,12}}; 12 14 11 1 s[0] 43 12 23 45 s[1] 34 43 32 12 s[2] int *p; p=s; p 1、P++表示使指针移向一下一个数组元素。 p 2、*p表示p所指向的数组元素中的值。 3、第i行第j列元素的值可以表示为*(p+i*4+j) 实训1 使用指针实现向二维数组中输入输出内容 main( ) {int array[4][5]; int *p; for(p=array[0];p ;p++) scanf(%d, ); for(p=array[0];p ;p++) printf(%d, ); } 方法1: 方法2: main( ) {int array[4][5]; int i,*p; p=array[0]; for(i=0;i20;i++,p++) scanf(%d,p

文档评论(0)

你找对了 + 关注
实名认证
内容提供者

正版课件均可编辑 注意:其它人很多盗版P P T都是图片形式,买到请直接投诉退款!

1亿VIP精品文档

相关文档