第27次(指针与数组)

第27次(指针与数组)

ID:43738453

大小:456.50 KB

页数:22页

时间:2019-10-13

第27次(指针与数组)_第1页
第27次(指针与数组)_第2页
第27次(指针与数组)_第3页
第27次(指针与数组)_第4页
第27次(指针与数组)_第5页
资源描述:

《第27次(指针与数组)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、ITEducation&TrainingNeusoftInstituteofInformationDate:07十月2021第六章指针---指针与数组办公室:C7座201EMAIL:huang.w@ccniit.com课件下载网址:ftp://computer.dept.ccniit.com任课教师:黄伟授课要点指向数组元素的指针变量指针的运算用指针表示数组元素引入:数组和指针的关系数组名是表示数组首地址的地址常量指针变量是存放变量地址的变量指向数组元素的指针变量例intarray[10];int*p;p=&arra

2、y[0];//p=array;或int*p=&array[0];或int*p=array;array[0]array[1]array[2]array[3]array[9]...整型指针p&array[0]p授课要点指向数组元素的指针变量指针的运算用指针表示数组元素指针的运算指针变量的赋值运算p=&a;(将变量a地址p)p=array;(将数组array首地址p)p=&array[i];(将数组元素地址p)p1=p2;(指针变量p2值p1)不能把一个整数p,也不能把p的值整型变量如inti,*p;p=10

3、00;()i=p;()指针的算术运算指针的算术运算:pi(i为整型数)p++,p--,p+i,p-i,p+=i,p-=i等若p1与p2指向同一数组,p1-p2=两指针间元素个数(p1-p2)/dp1+p2无意义指针的算术运算例p指向shortint型数组,且p=&a[0];则p+1指向a[1]a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]a[9]a数组pp+1,a+1p+i,a+ip+9,a+9例inta[10];int*p=&a[2];p++;*p=1;等价于a[3]=1;例int

4、a[10];int*p1=&a[2];int*p2=&a[5];则:p2-p1=3;有定义:floata[10],*p=NULL;则:p=a;p、p++表示什么?p=&a[3];p、p-3、p+3、p--表示什么?模仿练习授课要点指向数组元素的指针变量指针的运算用指针表示数组元素数组元素表示方法a[0]a[1]a[2]a[3]a[9]...aa+9a+1a+2地址元素下标法a[0]a[1]a[2]a[9]a[0]a[1]a[2]a[3]a[9]...pp+9p+1p+2地址元素指针法*p*(p+1)*(p+2)*(p

5、+9)[]变址运算符a[i]*(a+i)a[i]p[i]*(p+i)*(a+i)有:inta[10],*p=a;有定义:floata[10],*p=NULL;则:p=&a[5];*p、*(p+1)、*(p+3)表示什么?p=a;*p+1、*(p+5)-1表示什么?模仿练习用指针表示数组元素举例1例:定义一一维数组,从键盘输入元素值,并输出。要求用指针表示数组元素voidmain(){inti,*p,a[7];p=a;for(i=0;i<7;i++)scanf("%d",p++);printf("");p=

6、a;for(i=0;i<7;i++,p++)printf("%d",*p);}指针变量可以指到数组后的内存单元用指针表示数组元素举例2例:输入10个整数,找出最大值并输出。要求用指针表示数组元素voidmain(){inta[10],*p=a,*pmax=a,i;for(i=0;i<10;i++){printf("请输入第%d个数:",i+1);scanf("%d",p++);}p=a+1;for(i=1;i<10;i++,p++)if(*pmax<*p)pmax=p;printf("max=%d",*pmax)

7、;}学生模仿练习以下习题用指针方法完成:1、从键盘输入一字符串,然后反序输出。2、输入8个整数,找出其中最小值和最大值并输出。模仿练习答案1.#include#includevoidmain(){charstr[10];char*p=NULL;gets(str);for(p=str+strlen(str)-1;p>=str;p--)printf("%c",*p);}模仿练习答案2.#include#includeintmax(int*q,in

8、tn);voidmain(){inta[5],*p=a;inti;for(i=0;i<5;i++,p++)scanf("%d",p);printf("max=%d",max(a,5));}intmax(int*q,intn){inti;intmaxNo=*q;q=q+1;for(i=1;imaxNo)maxNo

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。