(中职)C语言程序设计案例教程 7.4指向二维数组的指针ppt课件.pptx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《(中职)C语言程序设计案例教程 7.4指向二维数组的指针ppt课件.pptx》由会员分享,可在线阅读,更多相关《(中职)C语言程序设计案例教程 7.4指向二维数组的指针ppt课件.pptx(32页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、YCF正版可修改PPT(中职)C语言程序设计案例教程 7.4指向二维数组的指针ppt课件CONTENTS 目 录提出问题 引入新课自主学习 明确考点案例分析 交流提升仿真演练 体验探索提出问题 引入新课PART 011、一维、二维数组的组成各包括几个层次;2、一维数组元素的地址与值的表示方法提出问题 引入新课自主学习 明确考点PART 021、二维数组把数据的组织分成三个层次:一是整个由行和列组成的二维数组,二是二维数组中的行,三是二维数组每行中的单个元素。三个层次之间具有由上至下包含或由下至上形成的关系:二维数组包含若干行,一行包含若干个元素;若干元素形成一行,若干行形成一个二维数组。考点一
2、:二维数组的结构层次与二维数组元素的地址2、二维数组元素的地址设有整型二维数组int a34=0,1,2,3,4,5,6,7,8,9,11,12;设数组a的首地址为1000,各下标变量的首地址及其值如图所示。考点一:二维数组的结构层次与二维数组元素的地址1000a0001002a0111004a0221006a0331008a1041010a1151012a1261014a1371016a2081018a2191020a22111022a2312语言允许把一个二维数组分解为多个一维数组来处理。因此数组a可分解为三个一维数组,即a0,a1,a2。每一个一维数组又含有四个元素。例如a0数组,含有a
3、00,a01,a02,a03四个元素。数组及数组元素的地址表示如下:考点一:二维数组的结构层次与二维数组元素的地址1000a0001002a0111004a0221006a0331008a1041010a1151012a1261014a1371016a2081018a2191020a22111022a2312a0a1a2100010081016考点一:二维数组的结构层次与二维数组元素的地址从二维数组的角度来看,a是二维数组名,a代表整个二维数组的首地址,也是二维数组0行的首地址,等于1000。a+1代表第一行的首地址,等于1008。如图:a0是第一个一维数组的数组名和首地址,因此也为1000。
4、它表示一维数组a00 号元素的首地址,也为1000。&a00是二维数组a的0行0列元素首地址,同样是1000。因此,a,a0,&a00,*(a+0)是等同的。a1000a+11008a+21016同理,a+1是二维数组1行的首地址,等于1008。a1是第二个一维数组的数组名和首地址,因此也为1008。&a10是二维数组a的1行0列元素地址,也是1008。因此a+1,a1,&a10,*(a+1)是等同的。由此可得出:a+i,ai,&ai0,*(a+i)是等同的。考点一:二维数组的结构层次与二维数组元素的地址另外,a0也可以看成是a0+0,是一维数组a0的0号元素的首地址,而a0+1则是a0的1号
5、元素首地址,由此可得出ai+j则是一维数组ai的j号元素首地址,它等于&aij。10000100211004210063100841010510126101471016810189102011102212aa+1a+2a0a0+1a0+2a0+33、二维数组的元素由ai元素可以用*(a+i)表示,则ai+j可表示为*(a+i)+j。由于*(a+i)+j是二维数组a的i行j列元素的首地址,所以,该元素的值就用*(*(a+i)+j)表示。考点一:二维数组的结构层次与二维数组元素的地址二维数组多种地址的表示形式:例如:有定义 int a34,*p=a;表示形式含义ai+j,*(a+i)+j,&aij
6、,pi+j第i行第j列元素的地址*(ai+j),*(*(a+i)+j),*(&aij),*(pi+j)第i行第j列元素的值考点一:二维数组的结构层次与二维数组元素的地址【例1】用指针输出二维数组#includemain()int a34=1,2,3,4,5,6,7,8,9,10,11,12;int i,j;for(i=0;i3;i+)for(j=0;j4;j+)printf(“%5d”,*(*(a+i)+j);printf(“n”);运行结果为:1 2 3 45 6 7 89 10 11 121、指向二维数组元素的指针变量定义指向二维数组元素的指针变量,定义格式*例如:int*p;考点二:指向
7、二维数组的指针变量赋值格式:;p=a0;&;p=&a00;2、计算aij在数组中的相对位置的计算公式是:i*m+j 其中m表示二维数组的列数。相对位置是指相对于数组起始位置的相对位移量(距离)。如int a34,*p;p=a;则第2行第3列的元素a23相对于a00的相对位置是2*4+311。如果开始时指针p指向a(即a00),为了得到a23的值,就可以用*(p+2*4+3)表示。(p+11)或p11表示a23的地址。所以某元素aij与*(a+i*m+j)等价。考点二:指向二维数组的指针变量考点二:指向二维数组的指针变量【例2】用指针输出二维数组的各行各列元素的值说明:利用指针的移动是以单个元素
8、为基本单位,按照元素从上到下,行内由左到右的顺序进行移动特点。#include main()static int b45=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20;int *p,i,j;p=b0;for(p=b0;pb0+20;p+)/挨个移到每个数组元素 if(p-b0)%5=0)printf(n);printf(%4d,*p);考点二:指向二维数组的指针变量【例2】用指针输出二维数组的各行各列元素的值方法2:根据数组元素在数组的相对位置的特点采用指针运算和下标运算与元素的相对位置(距离或偏移量)进行。#include main()
9、static int b45=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20;int *p,i,j;p=b;for(i=0;i4;i+)for(j=0;j 5;j+)printf(%4d,*(p+i*5+j);/采用数组元素数组中的相对位置 printf(n);定义指向二维数组中某行的指针变量,需要先定义指针变量为指向一维数组(行)的指针变量,这类指针被称为“数组指针”。一般形式为:类型说明符 (*指针变量名)长度;考点三:指向二维数组中某行的指针变量其中“类型说明符”为所指数组的数据类型。“*”表示其后的变量是指针类型。”长度”表示二维数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中职C语言程序设计案例教程 7.4指向二维数组的指针ppt课件 语言程序设计 案例 教程 7.4 指向 二维 数组 指针 ppt 课件
![提示](https://www.deliwenku.com/images/bang_tan.gif)
限制150内