资源预览内容
第1页 / 共26页
第2页 / 共26页
第3页 / 共26页
第4页 / 共26页
第5页 / 共26页
第6页 / 共26页
第7页 / 共26页
第8页 / 共26页
第9页 / 共26页
第10页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
2018/10/16,1,多维数组及数组应用,赵红,2018/10/16,2,作业,写出程序运行结果。 用行指针操作二维数组,找出最大值。 void main() int a23=1,2,9,4,5,6; coutprint(a,2,3)endl; P167自测题7.5 P164例7.5,本周上机测试结构体,2018/10/16,3,例如:比较两个字符串的大小。写出运算结果,#include #include void main( ) char s1 = “aBC“,s2 = “abc“;if (strcmp(s1,s2)=0) cout0) couts2“;else cout“s1s2“; ,程序输出结果: s1s2,思考:若有语句 if (s1= =s2) printf(“s1=s2“);比较的是什么?,2018/10/16,4,x0是数组名,是元素x00的地址,x1是数组名, 是元素x10的地址,二维数组可看作是一种特殊的一维数组,x0- x00,x01,x02,x1- x10,x11,x12,例如,可以把x数组看作是包含二个元素的一维数组,每个元素又是一个含有三个元素一维数组。 x为行指针,x0为元素指针,2018/10/16,5, 二维数组的地址例如:int a34; 二维数组名a是数组的首地址。 二维数组a包含三个行元素:a0、a1、a2 。,三个行元素的地址分别是:a、a+1、a+2。 而a0、a1、a2也是地址量,是一维数组名, 即*(a+0)、*(a+1)、*(a+2)是一维数组首个元素地址。,10.3 指针与数组,10.3.1 指向数组的指针,2. 二维数组的指针,2018/10/16,6, 二维数组元素的地址a0、a1、a2是一维数组名,所以ai+j是数组元素的地址。,数组元素aij的地址可以表示为下列形式:&aij、ai+j 、*(a+i)+j,10.3 指针与数组,10.3.1 指向数组的指针,2. 二维数组的指针,2018/10/16,7, 二维数组元素的表示法数组元素可用下列形式表示:aij、*(ai+j)、*(*(a+i)+j),10.3 指针与数组,10.3.1 指向数组的指针,2. 二维数组的指针,a 是二维数组,根据C的地址计算方法,a经过两次 * 操作才能访问到数组元素。所以* a 是 a0,* * a 才是 a00。a0是a00的地址,*a0是a00。,2018/10/16,8,int x23=0,1,2,10,11,12; int (*lp)3,*q; lp=x; q=x0;,10.3 指向数组的指针,指向一维数组的指针变量的定义形式: 数据类型标识符 (*变量名)元素个数,lp+;,q+;,cannot convert from int 23 to int *,2018/10/16,9,【例10.6】用指向一维数组的指针变量输出数组元素。 #include void main( ) int a34=0,1,2,3,10,11,12,13,20,21,22,23;int (*lp)4, j;for (lp=a; lpa+3; lp+) for (j=0; j4; j+)cout*(*lp+j)“ “;coutyear p-month p-day,“-”是指向结构体成员运算符,优先级为一级,p=&d.year,2018/10/16,25,结构体,结构体的指针,【例】分析自增自减运算对程序结果的影响。struct code int i;char c;a =100,A,200,B,300,C,400,D;,2018/10/16,26,结构体,结构体的指针,void main( ) struct code *p=a;couticici+i“ “endl;,p,101,D,
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号