指针与二维数组

上传人:ni****g 文档编号:511920907 上传时间:2022-12-26 格式:DOCX 页数:32 大小:1.13MB
返回 下载 相关 举报
指针与二维数组_第1页
第1页 / 共32页
指针与二维数组_第2页
第2页 / 共32页
指针与二维数组_第3页
第3页 / 共32页
指针与二维数组_第4页
第4页 / 共32页
指针与二维数组_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《指针与二维数组》由会员分享,可在线阅读,更多相关《指针与二维数组(32页珍藏版)》请在金锄头文库上搜索。

1、第六节二维数组和指包int array10;二维数组的地址对于一维数组:array(1)数组名array表示数组的首地址,即array0的地址;(2)数组名array是地址常量(3) array+i是元素arrayi的地址(4) arrayi*(array+i)a0inta314;inta34;2ooq2002a01+i*(a+0)+ia+12008-al2003*(a+l)+ia+2201620ig.2018aN+1*(a+2)+i地址对应值a0|+0*(a0+0)对十二维数组:错-2是数鳏2)a0+包含训。市索ald0崛怖的42H每个网素州喷热嗯翦、al+比索al+2)a2|+0*(a2+

2、0)a2+l*(a2+l)a2|+2*(a2+2)a2+2*(a2+2)inta3L4;inta34;aaOla02a3,_allL3J|2|0地址表示:(1) a+1(2) &alO凯1(4)*(a+l)(5)(int*)(a+1)行指针列指针a2la|2|2H23地址表示:(1) &al2(2) al+2(3) *(a+l)+2(4)&a00+1*4+2二维数组元素表示形式:(1)(2)(3)(4)al2*(al+2)*(*(a+l)+2)*(&a00+1*4+2)指向二维数组元素的指针变量inta34;nta34J;例int(*p)4;P指向一维数组的指针变量定义形式:数据类az(求指轮

3、名)一维数组维数;一维数组指针变量维数和i+l二维数组歹!J数必须相同alOR3alOalHHint(*p)f4Wint斗碣诛同a+2做9炉或*p+i)或owlaHJ2_aH3a一-pl+2或*(p+l)+2*(*(p+l)+2)p+2a2l布f3a0|0a0la0|2aO|3JalUlOJallalUt2al|3a(20a2la2|23int a34;P例一维数组指针变量举例main()staticinta34=1,3,5,7,9,11,13,15,17,19,21,23);inti,jX*P)4;for(p=a,i=0;i3;i+,p+)for(j=0;j4;j+)printf(d”,*(

4、*p+j);。pOjprintf(nnn);Np=aO;p=*a;p=&aOO;p=&aO;指向指针的指针(二级指针)main()inta34=(123,4,345,6,5,678);inti;int*p=a;for(i=0;i3;i+)for(j=0;jv4;j+)printf(n%d,H,*(*(p+i)+j);)Pp+1p+2*p*p+l*p+2*p+3123434565678格式:类型名*指针名;2 .用二维数组3 .用二级指针4 .用指针数组第七节二维数组的指针作函数参数、形参的格式1.用指向数组的指针变量例:fun(double(*p)N例:fun(doubleaJN);或:fun

5、(doubleaMN例:fun(double*p);例:fun(double*aM);或fun(double例3个学生各学4门迎.计管总平均分,并输出第n个学生成绩函数说明main()voidaverage(float*p,intn);voidsearch(float(*p)4J,intn);floatscore34=65,67,79,60,80,87,90,81,90,99,100,98;average(*scorej2);search(scqre,2)、,上匚71、A1针voidaverage(float*p,intn)float*p_end,sum=O,aver;p_end=p+n-1;

6、for(;p=p_end;p+)sum=sum+(*p);aver=sum/n;printf(Haverage=%5.2fn”,aver);floatp4)voidsearch(float(*p)4,intn)655279680879081909910098Ppnn)printf(nNo.%d:nf;n);for(i=0;i4;i+)4p+n)+i);例3个学生各学4门课,计算总平均分,并查找一门以上课不及格学生,输出其各门课成绩6552796080879081909910098voidsearch(float(*p)4,intn)inti,j,flag;for(j=0;jn;j+)flag=

7、O;pjifor(i=0:iv4:i+)if(*(*(p+j)+i)60)flag=l;if(flag=l)printf(nNo.%disfail,hisscoresare:n,j+l);for(i=0;i4;i+)printf(%5.1f”,*(*(p+j)+i);main() void search(float (*p)4, int n);float score34=search(score,3);printf(,nu);)输出杨辉三角形(程序见P133)1464115101051615201561分析特点是:第一列是1对角线为1从第三行开始,每数是它上面前一列和它对应列的和可用表示6.4

8、指针与字符串字符串表示形式用字符数组实现例main()charstring=4IloveChina!”;printfC%sn,string);printfC%snstring+7);运行结果:IloveChina!China!。用字符指针实现字符指针初始化:把字符串首地址赋给stringochar*string;string=44IloveChina!”;例main()char*strin荫“IloveChina!”;printfV%sn”,string);whileLing)一4ng=0putchar(*string);I1oVechnai *0stringstring+;字符指针变量与字符

9、数组char*cp;与charstr20J;Ostr由若干元素组成,每个元素放一个字符;而cp中存放字符串首地址charstr20;str=4iIloveChina!?,;(x)char*cp;cp=IloveChina!”;(/):”仃是地址常量;cp是地址变量:*cp接受键入字符串时,必须先开辟存储空间例charstr101;scanK%s,str);(/)而char*cp;scanK%s,cp);(x)改为:char*cp,strl0;cp=str;scanK%s,cp);(7)字符串与数组关系字符串用一维字符数组存放字符数组具有一维数组的所有特点数组名是指向数组首地址的地址常置scanf(%s,,str);printf(“%s”,str);gets(str);puis(str);数组元素的引用方法可用指针法和下标法数组名作函数参数是地址传递等区另!J存储格式:字符串结束标志赋值方式与初始化charstr=Hello!”;(y)z=x;elsez=y;return(z);用函数指针变量作函数参数例用函数指针变量作参数,求最大值、最小值和两数之和I max(int x,int y)/ printfCmax=);return(xy?x:y);min(int x,int y),/ printfVmin=);return(xy?x:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 市场营销

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号