指针与二维数组

上传人:re****.1 文档编号:506664881 上传时间:2023-03-13 格式:DOCX 页数:35 大小:674.62KB
返回 下载 相关 举报
指针与二维数组_第1页
第1页 / 共35页
指针与二维数组_第2页
第2页 / 共35页
指针与二维数组_第3页
第3页 / 共35页
指针与二维数组_第4页
第4页 / 共35页
指针与二维数组_第5页
第5页 / 共35页
点击查看更多>>
资源描述

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

1、第六节二维数组和指针二维数组的地址对于一维数组:int(2)(3)(4)数组名array表示数组的首地址, 即array的地址:数组名array是地址常最array+i是元素arayi的地址arrayi o *(array+i)针13列热int a34; int nUlIdl a.Z 2008,a10|20002002a|0H (a+0)+i2008a|()H0|a01la阳alOJPlall KOd+ 1a+2还a|l|- -a|l|+i 2010(a+l)+i2016aiuma|U(2a11131-20/ +1*(ii+2)+i4 M 串in12113|+0 a|2+l m21+2 限1+

2、2地址 对应值.()|+0(a|0|+)师储是蛔刈) a|()件包含山像兀索 , 嘲“豳迎NH年个兄索班) /嘲嚏暮 项1+%刎1叶2)(a|2 40)M2I+I)(a|2 +2)*(a2+2)int a34;a+25oi6a|2|心网 d in二队数蛆int a图.有 a二数组的tir坨址.即0行的甘比址 a+i一一第i行的8桃址 ai o *(a+i)第itT第0列的元素堆址 a(i)+j o %a+i)+j第i行第j少J的元素,电址 (a(iJti) O *(*(a+iH-j) o ai|ja+i=&a|i|=a(ij=*(a+i) =&a|iOJ, 位相含义不网;i+i -&WL欢乐第

3、i行甘城址.指向行4示第i行第0列元素埴址.指向列地址表示:(1) a+1(2) &al0(3)al(4) (a+l)(int *)(a+l)地址表示:(I) &a|1|21 alJ+2(3) : (a+l )+2(4)&a00+1*4+2行指针列指针二维数组元素表示形式: 3)aH2(2) *(a 1 +2)(3) *(*(a+l)+2)(4) *(&a00+1*4+2)指向二维数组元素的指针变量int a|34|;指向一m数tag用什又置定义形式:蝎典业(将针名升一超江烟组枇画W川31aUHOalDIU荻跳铀坟+P+1吉常叶国(*p)Wall PIpl+2M *(p+l)+2*(*(p+l

4、)+2)IU13|int a(3i4j;例维数组指针变小举例main()(static int a34=( 1,357,9,11 . 13.15,17,19,21,23;int ij.(*p)4J;for(p=aj=0;i3;i+,p+)for(j=0:j4;j+)prinifCd= p01jlprintf(n);)p=aOJ; p=*a; p=&aO|O|; p=&a|():XXXKZ.a|001a02a|03.a| 1 H0|aiumaH2all 13a121OJ,IRJ1(3int a|34|指向指针的指针(二级指针)main() int a34=(1234,34,5,6,567,8);

5、int i;int *p=a;for(i=0;i3;i+)格式:类型名*指针名:for (j=0;j4;j+) printf(M%d/ *(*(p+i)+j);2,用二维数组3 .用二级指针4 .用指针数组第七节 二维数组的指针作函数参数、形参的格式1 .用指向数组的指针变量例:Fun(double (*p)|N|例:fun(double a|N); 或:fun(doubleaMN 例:fun(doublc *p);例:fun(double或 fun(doublc *a);例3个学生各学汉UM工总平均分,并输出第n个学生成绩函数说明52798087908190991009NPfloatprin

6、tfC No.%d :nn);|orii=();i4;i+)main()(void average(float *pjnt n);void scarchdloal (*p)4jnl n);float scorc34=(65,67,79,60),(80.87,90,81,(90,99,100,98):average(*scoreJ 2);search(scorc.2);A IWvoid average(tloat pjnt n)(float *p_end. sum=0,aver;p_end=p+n-1:fort :p=p_end;p+) sum=sum+(p);aver=sunVn;printf

7、(l,average=%5.2fn,aver);Ivoid search(float (川4. int n)WUp+n)+i):opn 叫例3个学生各学4门课,计算总平均分,并查找,门以上课 不及格学生,输出其各门课成绩6552796080879()81909910098void search(tloai (*p)|4), int n) int i j.nag:for(j=0;jn;j-H-) nag=O;pj|ilfor(i=0;i4;i+)if(*(*(p+j)+i)6() tlag=l;if(flag=l)(prin(f(No.%d is fail.his scores are:nH.j

8、+l); for(i=0;i4;i-H-)main()(void search(float (*p)4t int n); float score34= search(scorej);printf(HnM);)输出杨辉三角形(程序见P133)I2 13 314 6415 1010516 15201561分析特点是:第一列是1对角线为1从第三行开始,每数是它上面前一列和它对应列的和 可用年出1二叩1田1+行1田表示 6.4 针与字符串字苻串表示形式:用字若指针实现string字符指针初始化:把字符串看地址赋给st r i ng char string;string T love China!:例

9、main( char *stnng=*I love China!;printf(4osn string);string+=7;nT匕while(*string) !.,n吧-putchar( string);string+;stringV)。用字符数组实现stringIstringO例 main()1string1 1Jstring2 char stnng| 1 love China?;ostring3Jprintf( osn .string);Vstring|4Jprintf%snM,string+7);cstring5JIString+7-*string6Cstring7Jhs(ring8

10、均仃结果:1string9 fltnstring *0|I love China!astring( 11 CL:f. 19 string! I2|China!0string( 13字苻串指针作函数参数a a b b q Q . 11. J例用函数调用实现,(1)用字符数组作啰(2)用字符指针变h;void copy_slring(char froin|.char to) void copy_string(char *froiiKchar *to) ion;* from!=f( )*: from+4o+) to=*from;main()(char *a=MI am a teacher.H;cha

11、r *b=MYou are a student.printf(,fstring_a=%snstring_b=%sn,a,b);copy_string(ab):printf(,lnstring_a=%snstring_b=%sn,a.b);V) o字符指针变甘与字符数组char *cp; 与 char str|2O|;Ostr由若干元素组成.抽个元素放一个字符;而cp中有 放字符中甘枕址 char str20J; str=I love China!; (x) char *cp; cp=iI love China! ”: (/) 是地址常量;cp是地址变量:cp接受说入字苻牢时,必须先开辟存储空间

12、例 char str10;scanR%s、str); (/)而 char *cp;scanfC%s cp); (x)改为:char *cp,str 10;cp=str;scan Rfos,. .cp):(,)字杼率与数组关取字苻串用一维字移数组存放手苻败也具有一娘败也的所有出点数组名逸指向 数组看堆址的观址京*数组元素的引用方法可JR指针法和下标法 scanftos str);printfC-ostr);败蛆名作函数.数是配址传递至gcts(str);puts(str);存玲格式:字苻明结束标志M值方式与初始化榆入3出方式:%s %cchar strf|=uIIello!;(4)char str(10w*cp;char str(=-HelIo!;(、)int a0卜p;char trn=H:eT,

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

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

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