欢迎来到天天文库
浏览记录
ID:41059419
大小:294.61 KB
页数:27页
时间:2019-08-15
《面向对象程序设计第8讲二维指针结构体》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、多维数组及数组应用赵红2021/8/241作业写出程序运行结果。用行指针操作二维数组,找出最大值。voidmain(){inta[2][3]={1,2,9,4,5,6};cout<#includevoidmain(){chars1[]="aBC",s2[]="abc";if(strcmp(s1,s2)==0)cout<<"s1=s2";else
2、if(strcmp(s1,s2)>0)cout<<"s1>s2";elsecout<<"s13、为行指针,x[0]为元素指针2021/8/24401020111212122231323a⑴二维数组的地址例如:inta[3][4];①二维数组名a是数组的首地址。②二维数组a包含三个行元素:a[0]、a[1]、a[2]。a[0]a[1]a[2]a三个行元素的地址分别是:a、a+1、a+2。而a[0]、a[1]、a[2]也是地址量,是一维数组名,即*(a+0)、*(a+1)、*(a+2)是一维数组首个元素地址。10.3指针与数组10.3.1指向数组的指针2.二维数组的指针a+1a+22021/8/245⑵二维数组元素的地址a[0]、a[1]、a[2]是一维4、数组名,所以a[i]+j是数组元素的地址。数组元素a[i][j]的地址可以表示为下列形式:&a[i][j]、a[i]+j、*(a+i)+j01020111212122231323a[0]数组a[1]数组a[2]数组10.3指针与数组10.3.1指向数组的指针2.二维数组的指针a[2]+1a[2]+2a[2]+3a[0]+1a[0]+2a[0]+32021/8/246⑶二维数组元素的表示法数组元素可用下列形式表示:a[i][j]、*(a[i]+j)、*(*(a+i)+j)10.3指针与数组10.3.1指向数组的指针2.二维数组的指针a是二维数组,根据C的地址5、计算方法,a经过两次*操作才能访问到数组元素。所以*a是a[0],**a才是a[0][0]。a[0]是a[0][0]的地址,*a[0]是a[0][0]。01020111212122231323a[0]a[1]a[2]a2021/8/247intx[2][3]={{0,1,2},{10,11,12}};int(*lp)[3],*q;lp=x;q=x[0];10.3指向数组的指针x[0][0]x[0][1]x[0][2]x[1][0]x[1][1]x[1][2]2000H2004H2008H200cH2010H2014H指向一维数组的指针变量的定义形式:数据类6、型标识符(*变量名)[元素个数]lplplp++;q++;qqcannotconvertfrom'int[2][3]'to'int*'2021/8/248【例10.6】用指向一维数组的指针变量输出数组元素。#includevoidmain(){inta[3][4]={{0,1,2,3},{10,11,12,13},{20,21,22,23}};int(*lp)[4],j;for(lp=a;lp7、.1指向数组的指针2.二维数组的指针01020111212122231323alplplplp012310111213202122232021/8/249指针数组定义的一般形式:数据类型标识符*数组名[元素个数];在这个定义中由于“[]”比“*”的优先级高,所以数组名先与“[元素个数]”结合,形成数组的定义形式,“*”表示数组中每个元素是指针类型,“数据类型标识符”说明指针的目标变量的数据类型。例如:int*ip[10];char*cp[5];10.7指针与数组10.7指针数组1.指针数组的定义指针数组就是数组中的每个元素均为指针类型2021/8/24108、例如:P191charc[4][8]={"Fortran","CO
3、为行指针,x[0]为元素指针2021/8/24401020111212122231323a⑴二维数组的地址例如:inta[3][4];①二维数组名a是数组的首地址。②二维数组a包含三个行元素:a[0]、a[1]、a[2]。a[0]a[1]a[2]a三个行元素的地址分别是:a、a+1、a+2。而a[0]、a[1]、a[2]也是地址量,是一维数组名,即*(a+0)、*(a+1)、*(a+2)是一维数组首个元素地址。10.3指针与数组10.3.1指向数组的指针2.二维数组的指针a+1a+22021/8/245⑵二维数组元素的地址a[0]、a[1]、a[2]是一维
4、数组名,所以a[i]+j是数组元素的地址。数组元素a[i][j]的地址可以表示为下列形式:&a[i][j]、a[i]+j、*(a+i)+j01020111212122231323a[0]数组a[1]数组a[2]数组10.3指针与数组10.3.1指向数组的指针2.二维数组的指针a[2]+1a[2]+2a[2]+3a[0]+1a[0]+2a[0]+32021/8/246⑶二维数组元素的表示法数组元素可用下列形式表示:a[i][j]、*(a[i]+j)、*(*(a+i)+j)10.3指针与数组10.3.1指向数组的指针2.二维数组的指针a是二维数组,根据C的地址
5、计算方法,a经过两次*操作才能访问到数组元素。所以*a是a[0],**a才是a[0][0]。a[0]是a[0][0]的地址,*a[0]是a[0][0]。01020111212122231323a[0]a[1]a[2]a2021/8/247intx[2][3]={{0,1,2},{10,11,12}};int(*lp)[3],*q;lp=x;q=x[0];10.3指向数组的指针x[0][0]x[0][1]x[0][2]x[1][0]x[1][1]x[1][2]2000H2004H2008H200cH2010H2014H指向一维数组的指针变量的定义形式:数据类
6、型标识符(*变量名)[元素个数]lplplp++;q++;qqcannotconvertfrom'int[2][3]'to'int*'2021/8/248【例10.6】用指向一维数组的指针变量输出数组元素。#includevoidmain(){inta[3][4]={{0,1,2,3},{10,11,12,13},{20,21,22,23}};int(*lp)[4],j;for(lp=a;lp7、.1指向数组的指针2.二维数组的指针01020111212122231323alplplplp012310111213202122232021/8/249指针数组定义的一般形式:数据类型标识符*数组名[元素个数];在这个定义中由于“[]”比“*”的优先级高,所以数组名先与“[元素个数]”结合,形成数组的定义形式,“*”表示数组中每个元素是指针类型,“数据类型标识符”说明指针的目标变量的数据类型。例如:int*ip[10];char*cp[5];10.7指针与数组10.7指针数组1.指针数组的定义指针数组就是数组中的每个元素均为指针类型2021/8/24108、例如:P191charc[4][8]={"Fortran","CO
7、.1指向数组的指针2.二维数组的指针01020111212122231323alplplplp012310111213202122232021/8/249指针数组定义的一般形式:数据类型标识符*数组名[元素个数];在这个定义中由于“[]”比“*”的优先级高,所以数组名先与“[元素个数]”结合,形成数组的定义形式,“*”表示数组中每个元素是指针类型,“数据类型标识符”说明指针的目标变量的数据类型。例如:int*ip[10];char*cp[5];10.7指针与数组10.7指针数组1.指针数组的定义指针数组就是数组中的每个元素均为指针类型2021/8/2410
8、例如:P191charc[4][8]={"Fortran","CO
此文档下载收益归作者所有