中国高校课件下载中心 》 教学资源 》 大学文库

《计算机程序设计基础》课程授课教案(C语言)第4章 数组和指针

文档信息
资源类别:文库
文档格式:PDF
文档页数:24
文件大小:363.59KB
团购合买:点击进入团购
内容简介
《计算机程序设计基础》课程授课教案(C语言)第4章 数组和指针
刷新页面文档预览

《计算机程序设计基础C语言》教案总学时36第21学时一第22学时授课内容第4章数组和指针一维数组数组的基本概念教学目的一维数组定义、初始化、引用;最大值、冒泡排序、选择排序算法。和要求重点:一维数组定义、初始化、引用重点求最大值、冒泡排序、选择排序算法难点难点:冒泡排序、选择排序算法教20分钟讲解分组研讨(四)学引言:安除了int、float、char等基本数据类型外,C语言还提供了构造数据类型,来满排足不同应用的需要。构造数据类型是由基本数据类型按一定规则组成的,也称作"导出类型”。构造数据类型包括数组、结构体、共用体。数组(array)就是1种构造类型。它能将具有相同类型的数据组合在一起,通常是用于处理批量数据。讲授一、数组维数数组中能唯一确定数组元素的下标的个数称为数组的维数一维数组:只用一个下标就能区分数组中的不同元素的二维数组:要用两个下标才能区分数组中的不同元素二、一维数组的定义与初始化1、一维数组定义类型定义符数组名[整型常量表达式];编译时系统分配连续内存内存字节数=数组维数*sizeof(元素数据类型)Aone-dimensionalarraydeclarationisatypefollowedbyanidentifierwithabracketedconstant integral expression.The value of the expression ,which must be positive, is the size of the array.It specifies the number of elements in the array.The array subscripts can range from O to size-1.The lower bound of the array subscripts is O and the upper bound is size-1.【例如】floatscore[50];char name[20];注意:不能用变量定义数组的长度。float score[n];×当定义数组语句中不同时给变量赋值时,方括号内不得为空

《计算机程序设计基础C语言》教案 总学时36 第 21学时 — 第 22学时 授课内容 第4章 数组和指针——一维数组 教学目的 和要求 数组的基本概念 一维数组定义、初始化、引用;最大值、冒泡排序、选择排序算法。 重点 难点 重点: 一维数组定义、初始化、引用 求最大值、冒泡排序、选择排序算法 难点: 冒泡排序、选择排序算法 教 学 安 排 20分钟讲解分组研讨(四) 引言: 除了int、float、char等基本数据类型外,C语言还提供了构造数据类型,来满 足不同应用的需要。 构造数据类型是由基本数据类型按一定规则组成的,也称作"导出类型"。 构造数据类型包括数组、结构体、共用体。 数组(array)就是1种构造类型。它能将具有相同类型的数据组合在一起,通 常是用于处理批量数据。 讲授 一、数组维数 数组中能唯一确定数组元素的下标的个数称为数组的维数 一维数组:只用一个下标就能区分数组中的不同元素的 二维数组:要用两个下标才能区分数组中的不同元素 二、一维数组的定义与初始化 1、一维数组定义 类型定义符 数组名[整型常量表达式] ; 编译时系统分配连续内存 内存字节数=数组维数*sizeof(元素数据类型) A one-dimensional array declaration is a type followed by an identifier with a bracketed constant integral expression. The value of the expression ,which must be positive, is the size of the array. It specifies the number of elements in the array. The array subscripts can range from 0 to size-1. The lower bound of the array subscripts is 0 and the upper bound is size-1. 【例如】 float score[50]; char name[20]; 注意: 不能用变量定义数组的长度。 float score[n]; × 当定义数组语句中不同时给变量赋值时,方括号内不得为空

int a[]; ×数组一旦定义,数组的大小就不能再改变。常用的办法是用符号常量来指定元素个数。#definesize50float score[size];2、一维数组的初始化类型定义符数组名[常量]=[值1,值2,,值n);例如:inta[6]={1,2,3,4,5,6];inta[]={1, 2, 3, 4, 5, 6];两者等价于:a[0]=1;a[1]=2;a[2]=3;a[3]=4;a[4]=5;a[5]=6;例如:inta[6]=[1,2];等价于: a[0]=1;a[1]=2;a[2]=0;a[3]=0;a[4]=0;a[5]=6;int c[10]=[0];1/将0赋给c[0]~c[9]inta[]=[1,2];//等价于:a[0]=1;a[1]=2三、一维数组元素的引用与操作1.数组元素的引用数组名[下标]注意:(1)数组元素的下标从0开始(2)引用数组元素时,只能单个引用,不能一次引用整个数组int a[6];a=[3,4,5,6,7]; xa[6]=[3,4,5,6,7]; x(3)下标不要超出数组的范围,否则导致错误的程序结果。2.数组的赋值可以在定义数组时对数组中的全部变量或部分变量赋值(即数组的初始化)。可以在语句中为变量赋值。利用循环依次为每个数组元素赋值或输入值。mainO(int i,a[5]for(i=0;i<5;i++)a[i]=i;l/用循环结构直接对数组赋初值for(i=0;i<5;i++)printf("%d,",a[i]);printf("In");用交互的循环结构对数组赋初值mainotint i,a[5];for(i=0;i<5;i++)printf("a[%d]=",),scanf("%d",&a[i]);for(i=0;i<5;i++)printf("%d,",a[1]);

int a[]; × 数组一旦定义,数组的大小就不能再改变。常用的办法是用符号常量来指定元 素个数。 #define size 50 float score[size]; 2、一维数组的初始化 类型定义符 数组名[常量] ={值1,值2,.,值n}; 例如: int a[6]={1,2,3,4,5,6}; int a[]={1,2,3,4,5,6}; 两者等价于:a[0]=1;a[1]=2;a[2]=3;a[3]=4;a[4]=5;a[5]=6; 例如: int a[6]={1,2}; 等价于:a[0]=1;a[1]=2;a[2]=0;a[3]=0;a[4]=0;a[5]=6; int c[10]={0}; //将0赋给c[0]~c[9] int a[]={1,2}; //等价于:a[0]=1; a[1]=2; 三、一维数组元素的引用与操作 1. 数组元素的引用 数组名[下标] 注意: (1)数组元素的下标从0开始 (2)引用数组元素时,只能单个引用,不能一次引用整个数组 int a[6]; a={3,4,5,6,7}; × a[6]={3,4,5,6,7}; × (3)下标不要超出数组的范围,否则导致错误的程序结果。 2. 数组的赋值 可以在定义数组时对数组中的全部变量或部分变量赋值(即数组的初始化)。 可以在语句中为变量赋值。 利用循环依次为每个数组元素赋值或输入值。 main(){int i,a[5]; for(i=0;i<5;i++) a[i]=i; //用循环结构直接对数组赋初值 for(i=0;i<5;i++) printf("%d,",a[i]); printf("\n"); } 用交互的循环结构对数组赋初值 main(){ int i,a[5]; for(i=0;i<5;i++) printf("a[%d]=",i),scanf("%d",&a[i]); for(i=0;i<5;i++) printf("%d,",a[i]);

printf("n");应用举例例:定义长度为10的整型类型一维数组并完成以下功能(1)从键盘输入10个整数,分别存放在10个数组元素中;(2)输出数组中的各元素值;(3)按逆序输出数组中的各元素值。mainOtint i,a[10];for(i=0;i=0;i--)printf("%4d",a[i]);printf("/n");在C语言中,有N个元素的数组其元素下标的允许取值范围为0到N-1,不存在下标为N的元素。例如mainOint i,a[10];for(i=1;i<=10;i++)a[]=0;printf("%d ",a[i])11这段代码本意是要设置数组a中的10个元素均为0。但通常编译器按内存递减方式分配内存,使得内存中a[9]之后的4个字节分配给i。本来计数器的值为10,循环体内将并不存在的a[10]设为0,实际是将值设为0,就陷入死循环!四、数组应用1、比较法排序由键盘输入10个数,按由小到大排序输出解题方法:①将10个数存入数组a②将a(0)与a(1)、a(2)....a(9)依次比较,哪个元素的值比a(0)小,就将它与a(O)的值交换,这样就将最小的数送到了a(0)中。3再将a(1)与a(2)、a(3)......a(9)依次比较,哪个元素的值比a(1)小,就将它与a(1)的值交换,这样就将最小的数送到了a(1)中。④重复以上步骤

printf("\n"); } 应用举例 例:定义长度为10的整型类型一维数组并完成以下功能: ⑴ 从键盘输入10个整数,分别存放在10个数组元素中; ⑵ 输出数组中的各元素值; ⑶ 按逆序输出数组中的各元素值。 main(){ int i,a[10]; for(i=0;i=0;i-) printf("%4d",a[i]); printf("\n"); } 在C语言中,有N个元素的数组其元素下标的允许取值范围为0到N-1, 不存在下标为N的元素。 例如main(){ int i,a[10]; for(i=1;i<=10;i++){ a[i]=0; printf("%d ",a[i]); } } 这段代码本意是要设置数组a中的10个元素均为0。但通常编译器按内存递减方 式分配内存,使得内存中a[9]之后的4个字节分配给i。本来计数器i的值为10, 循环体内将并不存在的a[10]设为0,实际是将i值设为0,就陷入死循环! 四、数组应用 1、比较法排序 由键盘输入10个数,按由小到大排序输出 解题方法: ① 将10个数存入数组a ② 将a(0)与a(1)、a(2).a(9)依次比较,哪个元素的值比a(0)小,就将它 与a(0)的值交换,这样就将最小的数送到了a(0)中。 ③ 再将a(1)与a(2)、a(3).a(9)依次比较,哪个元素的值比a(1)小,就将 它与a(1)的值交换,这样就将最小的数送到了a(1)中。 ④ 重复以上步骤

对于n个数,比较排序法的总运行次数为:(n-1)+(n-2)+... +3+2+1 = n * (n-1) / 2 .#includemainOint i,j,a[10];srand(time(O));for(i=0;ia[])a[]=[=[=];7for(i=0;ia[1])则两者交换,这样就将将最大的数放在a[n-1]中;②再将a[0]、a[1]、...a[n-2]这n-1个数进行同样的相邻两数比较,若为逆序则两者交换,这样就将这n-1个数中最大的数被放在a[n-2]中;③重复以上步骤,经过n-1趟比较交换完成冒泡法排序。#include#defineN101/数据的个数mainOkinta[N]={5,12,29,47,9,18,13,50,38,2}int ij,k,t;for(i=0;ia[i+1])t=ali];a[]=a[i+1];a[i+1]=t;11printf("ln最后的排序结果:n");for(i=0;i<N;i++)

对于n个数,比较排序法的总运行次数为: (n-1)+(n-2)+ . +3+2+1 = n * ( n-1 ) / 2 . #include main(){ int i,j,a[10]; srand(time(0)); for(i=0;ia[j]) a[i]^=a[j]^=a[i]^=a[j]; } for(i=0;ia[1])则两者交换,这样就将将最大的 数放在a[n-1]中; ② 再将a[0]、a[1]、.a[n-2]这n-1个数进行同样的相邻两数比较,若为逆 序则两者交换,这样就将这n-1个数中最大的数被放在a[n-2]中; ③ 重复以上步骤,经过n-1趟比较交换完成冒泡法排序。 #include #define N 10 //数据的个数 main(){ int a[N]={5,12,29,47,9,18,13,50,38,2}; int i,j,k,t; for(i=0;ia[j+1]){ t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } printf("\n最后的排序结果:\n"); for(i=0;i<N;i++)

printf("%5d",a[i)}1、插入向一个有序数组中插入一个数字,插入后不改变原有顺序方法1:找到插入点后再移位。从前向后循环,从第1个元素开始依次将数组元素与要插入的数x比较,当x=i;j--)a[i+1]=a[];a[]=x;Ⅱ插入数据后退出整个循环break;11方法2:边找插入点边移位。从后向前循环,直接从最后1个元素开始,将其与要插入的数x比较,如果xx,因此x要赋值给a[i+1]。Ⅱ从最后1个元素开始,依次将要插入的数与每个元素比较for(i=8;i>=0;i--)(1如果要插入的数比元素值小,则该元素直接向后移位if(x<a[i])a[i+1]=a[];elsebreak;I/表示找到插入点,退出循环1Ⅱ插入数据a[i+1]=x;2、删除不改变顺序,删除指定的数字mainOtint i,j,del=0,int a[10]={1,2,3,4,5,6,7,8,9,10],x=5;for(i=0;i<10;i++)orintf("%4d",a[i]);putch("\n');for(i=0;i<10-del;i++)I/删除后数组的容量减小一if(x==a[])for(j=i;j<10;j++)a[]=a[i+1]

printf("%5d", a[i]); } 1、插入 向一个有序数组中插入一个数字,插入后不改变原有顺序 方法1:找到插入点后再移位。从前向后循环,从第1个元素开始依次将数组元 素与要插入的数x比较,当x=i;j-) a[j+1]=a[j]; a[i]=x; // 插入数据后退出整个循环 break; } } 方法2:边找插入点边移位。从后向前循环,直接从最后1个元素开始,将其与 要插入的数x比较,如果xx,因此x要赋值给a[i+1]。 //从最后1个元素开始,依次将要插入的数与每个元素比较 for(i=8;i>=0;i-){ //如果要插入的数比元素值小,则该元素直接向后移位 if(x<a[i]) a[i+1]=a[i]; else break; //表示找到插入点,退出循环 } a[i+1]=x; // 插入数据 2、删除 不改变顺序,删除指定的数字 main(){ int i,j,del=0, int a[10]={1,2,3,4,5,6,7,8,9,10},x=5; for(i=0;i<10;i++) printf("%4d",a[i]); putch(’\n’); for(i=0;i<10-del;i++){ //删除后数组的容量减小一 if(x==a[i]){ for(j=i;j<10;j++) a[j]=a[j+1];

i-;I/还原到删除位置,以处理连续删除del++;Afor(i=0;ix[K]则取新区间[k+1,b] (即a=k+1)二分法查找递增序列mainOkint x[10]=[34,56,78,87,88,90,101,112,520,888];int y,i,k,a=0,b=9;for(i=0;ib) printf("ERROR");elseprintf("Inx[%d]=%din",k,x[k]);getch);课堂提问讨论小结、作业布置思考题、课后作业主要参考资料课后自我

i-; //还原到删除位置,以处理连续删除 del++; } } for(i=0;ix[k] 则取新区间 [k+1,b] (即a=k+1) 二分法查找递增序列 main(){ int x[10]={34,56,78,87,88,90,101,112,520,888}; int y,i,k,a=0,b=9; for(i=0;ib) printf("ERROR"); else printf("\nx[%d]=%d\n",k,x[k]); getch(); } 课堂提问讨论 小结、作业布置 思考题、 课后作业 主要 参考资料 课后自我

总结分析备注《计算机程序设计基础C语言》教案总学时36第23学时一第24学时授课内容第4章数组和指针一二维及多维数组教学目的二维数组定义、初始化、引用;多维数组和要求重点:重点二维数组定义、初始化、引用难点矩阵操作教30分钟讲解实验三循环结构程序设计学讲授安一、二维数组的定义和初始化排1.定义需要两个下标才能标识数组中某个元素的位置,也称为矩阵。Useatwo-dimensional arrayiftwo otheridentifiersareneededtodeterminethevalueofinterest.定义格式为:类型定义符数组名[常量表达式1][常量表达式2]2.二维数组的初始化和引用两种初始化方式:按行初始化:每一对花括号对应一行的元素。按存放顺序初始化:按内存中的存放顺序将初始值分别赋值给对应的元素。int a[2][3]={[1,2,3],[4,5,6];int a[2][3]={1,2,3,4,5,6];int a[[3]={1,2,3,4,5,6];int d[3][4]-{1],[2,3],[4,5,6];int d[4]={{1],[2,3],{4,5,6];int d[3][4]-[1,0,0,0,2,3,0,0,4,5,6];int d[4]={1,0,0,0,2,3,0,0,4,5,6];inte[3][4]={[0,0,0,1],[0,0,2,3],[0,4,5,6]

总结分析 备注 《计算机程序设计基础C语言》教案 总学时36 第 23学时 — 第 24学时 授课内容 第4章 数组和指针——二维及多维数组 教学目的 和要求 二维数组定义、初始化、引用;多维数组 重点 难点 重点: 二维数组定义、初始化、引用 矩阵操作 教 学 安 排 30分钟讲解实验三循环结构程序设计 讲授 一、二维数组的定义和初始化 1. 定义 需要两个下标才能标识数组中某个元素的位置,也称为矩阵。Use a two￾dimensional array if two other identifiers are needed to determine the value of interest. 定义格式为: 类型定义符 数组名[常量表达式1] [常量表达式2] 2. 二维数组的初始化和引用 两种初始化方式: 按行初始化:每一对花括号对应一行的元素。 按存放顺序初始化:按内存中的存放顺序将初始值分别赋值给对应的元素。 int a[2][3]={{1,2,3},{4,5,6}}; int a[2][3]={1,2,3,4,5,6}; int a[][3]={1,2,3,4,5,6}; int d[3][4]={{1},{2,3},{4,5,6}}; int d[][4]={{1},{2,3},{4,5,6}}; int d[3][4]={1,0,0,0,2,3,0,0,4,5,6}; int d[][4]={1,0,0,0,2,3,0,0,4,5,6}; int e[3][4]={{0,0,0,1},{0,0,2,3},{0,4,5,6}};

int e[4]={(0,0,0,1],[0,0,2,3],[0,4,5,6];int e[3][4]=[0,0,0,1,0,0,2,3,0,4,5,6];3.二维数组在内存中的存放M行N列的二维数组a,a[i]j]的位置公式为:i*N+j+1数组元素a[i]j]存储映射关系为:a[]i]a[O][N*i+j]1Real computermemory has only onedimension, i.e.each location isidentifiedwithonlyonecomponentofaddress.因此,二维数组元素可用它相对数组首元素[0][0]位置的偏移量来表示(称为存储映射关系storagemapping)。对二维数组元素的操作除了用二重循环外,还可以用一重循环实现。In C, or any other language supporting arrays with dimension sizesgreater than one, two-dimensional arrays simulate the effect of using twocomponents of address.To dothis,the arrayismapped into consecutivememorywithrowO'svaluesfirst,thenrowone'svalues,etc.TYoucanthinkofthis asa setofonedimensional arraysholdingthecolumnvaluesasasinglevalueintherow'svalues.二、二维数组元素的引用对二维数组inta[3][4]中各元素的输出操作① for(i=0;i<3;i++)for(j=0;j<4;j++)printf("%4d",a[]]);② for(i=0;i<3;i++)for(i=0;j<4;j++)1用相对a[0][0]位置的偏移量来表示printf("%4d",a[0][4*i+jl);③ for(i=0;i<12;i++)1/用相对a[0][0]位置的偏移量printf("%4d",a[0][i]);三、二维数组的应用举例1矩阵#defineN3main()int i,j,s=0,a[N][N]={{1,1,1],2,1,1],[2,2,1]]I 显示矩阵a[3][3]printf("对于矩阵a[%d][%d])n",N,N);for(i=0;i<N;i++)Kfor(j=0;j<N;j++)

int e[][4]={{0,0,0,1},{0,0,2,3},{0,4,5,6}}; int e[3][4]={0,0,0,1,0,0,2,3,0,4,5,6}}; 3. 二维数组在内存中的存放 M行N列的二维数组a,a[i][j] 的位置公式为:i*N+j+1 数组元素a[i][j]存储映射关系为:a[i][j] a[0][N*i+j] l Real computer memory has only one dimension, i.e. each location is identified with only one component of address. l 因此,二维数组元素可用它相对数组首元素[0][0]位置的偏移量来表示(称 为存储映射关系storage mapping )。对二维数组元素的操作除了用二重循 环外,还可以用一重循环实现。 l In C, or any other language supporting arrays with dimension sizes greater than one, two-dimensional arrays simulate the effect of using two components of address. To do this, the array is mapped into consecutive memory with row 0’s values first, then row one’s values, etc. l You can think of this as a set of one dimensional arrays holding the column values as a single value in the row’s values. 二、二维数组元素的引用 对二维数组int a[3][4]中各元素的输出操作 ① for(i=0;i<3;i++) for(j=0;j<4;j++) printf("%4d",a[i][j]); ② for(i=0;i<3;i++) for(j=0;j<4;j++) //用相对a[0][0]位置的偏移量来表示 printf("%4d",a[0][4*i+j]); ③ for(i=0;i<12;i++) //用相对a[0][0]位置的偏移量 printf("%4d",a[0][i]); 三、二维数组的应用举例 l 矩阵 #define N 3 main ( ){ int i,j,s=0,a[N][N]={{1,1,1},{2,1,1},{2,2,1}}; // 显示矩阵 a[3][3] printf("对于矩阵 a[%d][%d]\n",N,N); for(i=0;i<N;i++){ for(j=0;j<N;j++)

printf("%4d",a[i]jj]);putch("n");1主对角线元素之和for(i=O;imainOtint b[[4]=[0,1,0,0,1,0,0,0,2,6,4],i,j;for(i=0;i<sizeof(b)/sizeof(b[0));i++)for(j=O;j<sizeof(b[0])/sizeof(int);j++)

printf("%4d",a[i][j]); putch(’\n’); } // 主对角线元素之和 for(i=0;i main(){ int b[][4]={0,1,0,0,1,0,0,0,2,6,4},i,j; for(i=0;i<sizeof(b)/sizeof(b[0]);i++){ for(j=0;j<sizeof(b[0])/sizeof(int);j++)

printf("%5d",b[i]il);printf("In");;子1四、多维数组当需要用多个下标来确定数组元素时,数组称为多维数组。Thereisnolimitinthe language as to the number of dimensions that an array may be given.Eachdimensionrequiresasizespecifierwithinapairofbrackets1.多维数组的定义类型数组名[常量表达式1][常量表达式2]...[常量表达式n];【例如】定义一个整型三维数组intb[2][3][4];2.多维数组初始化对于三维数组,可将其看作多个二维表格,即可以把它看成是由多个二维数组构成的。依此类推,一个n维数组可以看成是由多个n-1维数组构成的。前面数组b有24个元素,它们在内存中排列顺序跟二维数组类似:先变化第三个下标,然后变化第二个下标,最后变化第一个下标。【例如】以三维数组初始化为例:int b[2][3][4]={({1,2,3,4],(5,6,7,8],[9,10,11,12]]{13,14,15,16],[17,18,19,20],[21,22,23,24]}];由第一维为2,可认为b数组由两个二维数组组成,每个二维数组为3行4列。初始化时,对每个二维数组以按行初始化的方法,分别用花括号把各行元素值括起来,并且将三行的初值再用花括号括起来。3.多维数组的一维表示多维数组元素也可用它相对数组首元素位置的偏移量来表示。三维数组b[L][M][N]的数组元素b[illil[k]的存储映射关系为b[i]]][k]b[O][O][M*N*i+N*j+k]Example:int b[2][3][4];causes the compiler toreserve spacefor2arrays of 3arrays of 4 integersin contiguous memory.Thus 24 contiguous integers are reservedAstoragemappingfunction isused totranslate an array reference intoapointerreference.Inthiscase,thestoragemappingfunctionmaps:b[]i][k]*(b[0][O][0]+3*4*i+4*j+k)课堂提问讨论小结、作业布置

printf("%5d",b[i][j]); printf("\n");; } } 四、多维数组 当需要用多个下标来确定数组元素时,数组称为多维数组。There is no limit in the language as to the number of dimensions that an array may be given. Each dimension requires a size specifier within a pair of brackets. 1. 多维数组的定义 类型 数组名[常量表达式1][常量表达式2].[常量表达式n]; 【例如】定义一个整型三维数组: int b[2][3][4]; 2.多维数组初始化 对于三维数组,可将其看作多个二维表格,即可以把它看成是由多个二维数组 构成的。依此类推,一个n维数组可以看成是由多个n-1维数组构成的。 前面数组b有24个元素,它们在内存中排列顺序跟二维数组类似:先变化第三 个下标,然后变化第二个下标,最后变化第一个下标。 【例如】以三维数组初始化为例: int b[2][3][4]={{{1,2,3,4},{5,6,7,8},{9,10,11,12}}, {{13,14,15,16},{17,18,19,20},{21,22,23,24}}}; 由第一维为2,可认为b数组由两个二维数组组成,每个二维数组为3行4列。初 始化时,对每个二维数组以按行初始化的方法,分别用花括号把各行元素值括 起来,并且将三行的初值再用花括号括起来。 3.多维数组的一维表示 多维数组元素也可用它相对数组首元素位置的偏移量来表示。三维数组 b[L] [M][N]的数组元素b[i][j][k]的存储映射关系为: b[i][j][k] b[0][0][M*N*i+N*j+k] Example: int b[2][3][4]; causes the compiler to reserve space for 2 arrays of 3 arrays of 4 integers in contiguous memory. Thus 24 contiguous integers are reserved. A storage mapping function is used to translate an array reference into a pointer reference. In this case, the storage mapping function maps: b[i][j][k] *(b[0][0][0]+3*4*i+4*j+k) 课堂提问讨论 小结、作业布置

共24页,试读已结束,阅读完整版请下载
刷新页面下载完整文档
VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
相关文档