第 7 章 指针g.ppt
上传人:sy****28 上传时间:2024-09-15 格式:PPT 页数:66 大小:4MB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

第 7 章 指针g.ppt

第7章指针g.ppt

预览

免费试读已结束,剩余 56 页请下载文档后查看

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第7章指针本章掌握的主要内容:正确使用指针指针与一维数组的关系指针与二维数组的关系函数指针与指针函数的区别指针数组与数组指针7.1指针的概念变量与地址指针变量的引用:&—取地址运算*—指针运算符指针变量只能存放地址,不能存放非地址类型的数据。例如:说明:如果“ap=&a;”1)&*ap*ap相当于变量a,故它相当于&a2)*&a&a相当于ap,*ap相当于a,故它相当于a3)(*ap)++相当于a++。而*ap++因++和指针运算符同级,且求解过程“自右到左”,因此相当于*(ap++)例如:voidmain(){int*p1,*p2,*p,a,b;scanf(“%d%d”,&a,&b);p1=&a;p2=&b;if(a<b){p=p1;p1=p2;p2=p;}printf(“a=%d,b=%d\n”,a,b);printf(“max=%d,min=%d\n”,*p1,*p2);}7.2引用调用7.3对指针使用const限定符指针与数组指向数组元素的指针变量一、通过指针引用数组由此可见,引用数组的方法有:下标法:a[i]、p[i],例如a[3]=9p[4]=8等等指针法:*(p+i),*(a+i)例如输出数组全部元素。①下标:main(){inta[10],i;for(i=0;i<10;i++)scnaf(“%d”,&a[i]);for(i=0;i<10;i++)printf(“%d“,a[i]);}通过数组名计算元素的地址,引用数组元素。main(){inta[10],i;for(i=0;i<10;i++)scanf(“%d”,&a[i]);for(i=0;i<10;i++)printf(“%d”,*(a+i));}用指针引用数组元素。main(){inta[10],*p=a;for(i=0;i<10;i++)scanf(“%d”,&a[i]);for(i=0;i<10;i++)printf(“%d“,*(p+i));}要注意指针变量的当前值。main(){int*p,i,a[10];p=a;for(i=0;i<10;i++)scanf(“%d”,p++);for(i=0;i<10;i++,p++)printf(“%d“,*p);printf(“\n”);}使用指针运算注意事项:p++:指针指向下一个元素。*p++:++和*运算同级,自右到左运算。相当于*(p++)for(i=0;i<10;i++,p++)printf(“%d“,*p);等价于:for(i=0;i<10;i++)printf(“%d“,*p++);*(p++)与*(++p)作用不同。(*p)++:p指向的元素的值加1。设p指向数组a的第i个元素,则*(p++)相当于a[i++]*(++p)相当于a[++i]*(--p)相当于a[--i](1)若有以下说明:inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则数值为6的表达式是A)*p+6B)*(p+6)C)*p+=5D)p+5(2)下面程序输出数组中的最大值,由s指针指向该元素.main(){inta[10]={6,7,2,9,1,10,5,8,4,3,},*p,*s;for(p=a,s=a;p-a<10;p++)if(---?---)s=p;printf("Themax:%d",*s):}则在if语句中的判断表达式应该是:A)p>sB)*p>*sC)a[p]>a[s]D)p-a>p-s3.以下程序段给数组所有的元素输入数据,请选择正确答案填入:#include<stdio.h>main(){inta[10],i=0;while(i<10)scanf("%d",__);//:}A)a+(i++)B)&a[i+1]C)a+iD)&a[++i]例写出下列程序段的输出结果voidmain(){inta[]={5,8,7,6,2,7,3};inty,*p=&a[1];y=(*--p)++;printf(“%d”,y);printf(“%d”,a[0]);}4.请选出以下程序的输出结果voidsub(intx,inty,int*z){*z=y-x;}main(){inta,b,c;sub(10,5,&a);sub(7,a,&b);sub(a,b,&c);printf("%d,%d,%d\n",a,b,c);}A)5,2,3B)-5,-12,-7C)-5,-12,-17D)5,-2,-7例将数组a中的n个整数按相反顺序存放(1)例将数组a中的n个整数按相反顺序存放(2)例将数组a中的n个整数按相