版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第九章 数组,引 入,上一页,下一页,暂 停,重 放,系统,返 回,休息,一、数组的概念,数组是指一组同类型数据组成的序列。数组中的每个数据称为一个元素,用一个统一的名字来标识,用下标指示数组中的各个元素。,二、数组的维数,一维:只含有一个下标的数组称为一维数组 a9,二维:含有两个下标的数组称为二维数组 b34,多维:含有多个下标的数组称为多维数组 c2354,上一页,下一页,暂 停,重 放,系统,返 回,休息,第一节 一维数组,一、定义,格式: 类型标识符 数组名常量表达式;,(1) 用 , 不能用 ( ),(2) 下标只能用常量,(3) 下标必须是大于零的整数,(4) 下标最大元素个数是
2、65535,指明数组中各 元素的数据类型,指明数组 包含的元素个数,举例:int ab10 ;,说明:,练习,上一页,下一页,暂 停,重 放,系统,返 回,休息,二、数组元素的初始化,在定义数组时对各元素指定初始值,称为数组的初始化,例:int ab5=1,3,5,7,9 ;,内存中存储格式为:,例:char c10 = c, ,l,a,n,g,u,a,g,e,内存中存储格式为:,ab0 ab1 ab2 ab3 ab4,c0 c1 c2 c3 c4 c5 c6 c7 c8 c9,ab,c,上一页,下一页,暂 停,重 放,系统,返 回,休息,说明:,1. 下标是从 0 开始的,2. 初始化数据用
3、 括起,各数据间用 “ ,” 分隔,3. 数据个数可以少于数组的元素个数,但不能大于元素个数。,int a5= 1,3,5 ;,int a5= 1,2,3,4,5,6,7 ;,4. 当给所有元素赋值时,可以省略数组元素个数,系统根据数据个数确定数组元素的个数。,float b3=1.0,2.0,3.5;,float b =1.0,2.0,3.5;,float b =1.0,2.0,3.5;,float b8=1.0,2.0,3.5;,上一页,下一页,暂 停,重 放,系统,返 回,休息,三、数组元素的引用,引用格式: 数组名下标,(1) 定义与引用的区别,int a9; a9=10 ;,(2)
4、数组元素的赋值只有在初始化时才能整体赋值,以后只能通过逐个赋值的方法进行。,例: int b3=1,0,5 ;,例: a2 = 3 ;,说明:,a0=a4+a2;,int b3 ; b = 1,0,5 ;,上一页,下一页,暂 停,重 放,系统,返 回,休息,上一页,下一页,暂 停,重 放,系统,返 回,休息,二、数组首地址引用方法,第二节 一维数组和指针,例: *(a+2)= 3 ; scanf(“%d”, a+i); printf(“%d”,*(a+i);,例:int a5=1,3,5,7,9 ;,内存中存储格式为:,a0 a1 a2 a3 a4,地址,a+1,a+2,a+3,a+4,a,一
5、、一维数组和数组元素的地址,引用格式: 数组名+i,上一页,下一页,暂 停,重 放,系统,返 回,休息,例: *(p+2)= 3 ; for (I=0;I=4;I+) scanf(“%d”, p+); p=a; for (I=0;I=4;I+) printf(“%d”, *p+);,例:int a5=1,3,5,7,9 , *p=a;,内存中存储格式为:,a0 a1 a2 a3 a4,p+1,p+2,p+3,p+4,p,三、利用指针引用一维数组元素,引用格式: 指针名+i,上一页,下一页,暂 停,重 放,系统,返 回,休息,例: p2=5 ; for (i=0;i=4;i+) scanf(“%
6、d”, ,当指针指向一维数组以后,就可以像使用数组一样使用指针,内存中存储格式为:,a0 a1 a2 a3 a4,P1,P2,P3,P4,P0,四、用带下标的指针引用一维数组元素,引用格式: 指针名I,例: p=,上一页,下一页,暂 停,重 放,系统,返 回,休息,格式: max(a); 数组名做实参 max(p); 指针做实参,一、数组元素做实参(传值调用),例: int mix(int a,int b); if ab return a; else return b; ,第三节 指针和数组做为函数参数,二、数组名和指针做实参(传址调用),三、数组和指针做形参 格式1: 函数类型 函数名(参数
7、类型 指针) 例: int max(int *p); 格式2: 函数类型 函数名( 参数类型 数组 ) 例: int max( int a ); 或 int max( int aM );,例: main() int a=1,2,3,4,5; printf(“%d”,mix(a1,a3);,第四节 数组元素的引用举例,输出下列矩阵,上一页,下一页,暂 停,重 放,系统,返 回,休息,#include “stdio.h” main() int i; int a20; for (i=0;i20;i+) ai=i+1; for (i=0;i20;i+) if (i%5=0) printf(“n”);
8、printf(“%8d”,ai); ,2 3 4 5 7 8 9 10 11 12 13 14 15 16 17 18 19 20,printf( “%8d”,*(a+i) );,*(a+i)=i+1;,输入十个数,计算其平均值,float aver( float a ,int n) int i; float sum=0, average; for (i=0;i=n-1;i+) sum=sum+ai; average=sum/n; return average; ,上一页,下一页,暂 停,重 放,系统,返 回,休息,main() int i; float sum=0, a10, av; for
9、 (i=0;i10;i+) scanf(“%f”, ,第五节 二维数组,一、引言,假设某班级学生的成绩如下:,上一页,下一页,暂 停,重 放,系统,返 回,休息,二、定义,格式: 类型 数组名常量表达式1常量表达式2,举例: int b34 ;,说明:,1. 二维数组的排列顺序是按行排列的,2. 二维数组所有元素个数不能大于65535,int b200400 ;,上一页,下一页,暂 停,重 放,系统,返 回,休息,三、初始化,同一维数组一样,二维数组也可以在定义的时候赋值,int b34= 1,2,3,4, 5,6,7,8, 9,10,11,12 ;,说明:,1. 初始化可以采用分行的方法完成
10、,2. 也可以直接按各个元素在数据中的排列顺序直接列出,int b34=1,2,3,4,5,6,7,8,9,10,11,12 ;,这种方式直观,清晰,是最常见的一种方式,这种方式分不清行列间的关系,而且数据较多时很容易出错,上一页,下一页,暂 停,重 放,系统,返 回,休息,3. 给所有元素赋值时或采用分行方式赋值时,下标1可省略,例:int 3=1,2,3,6,5,4;,a00 a01 a02 a10 a11 a12,int a23=1,2,1;,int b3 =1,2,3,4,5,6,7,8,9,10,11,12 ;,int a23=1,2,3,6,5,4;,int a3=1,2,1,a0
11、0 a01 a02 a10 a11 a12,4. 任何时候下标2不能省略,因为系统无法判断元素个数,a00 a01 a02 a10 a11 a12,上一页,下一页,暂 停,重 放,系统,返 回,休息,四、二维数组的引用,与一维数组的引用类似,二维数组的引用也是通过数组名和两个下标进行的,例: 编写输入各位同学成绩的程序段(假设有40位同学),main() int i , j ; float cj416; for (i=1;i=40;i+) for (j=1;j=5; j+) printf(“请输入第%d位同学第d门成绩”),i , j ); scanf(“%f”,cjij ); ,上一页,下一页,暂 停,重 放,系统,返 回,休息,指向指针的指针,i,4,p2, int *p2; int i=3; p2=,定义一个指向指针变量的变量 p1,定义一个指针变量p2,定义一个整型变量i,将变量i的地址传给p2,即使p2指向变量i,将指针变量p2的地址传给p1,即使p1指向p2,一个指针可以指向一个整型数据、实型数据、字符型数据以及结构体、共用体等数据类
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026特种作业安全考试题试题与答案
- 2026年主管护师职称考试试题及答案
- 2026年银行业专业人员中级职业资格考试(专业实务风险管理)模拟题库及答案(新疆克孜勒苏柯尔克孜)
- 2026年人力资源管理试卷(附答案)
- 2026年京东POP店铺初级售前客服认证考试题库答案
- 2026年国企招聘笔试题及答案
- 2026老年病护理学试题及答案
- 2026版《安全生产法》考试题库附答案
- 智装网的规划和设计分析
- 中国式现代化面对面心得体会
- 2026年主管护师职称考试试题及答案
- 2026云南昆明市五华区人民法院招聘第三批合同制司法辅助人员3人笔试参考题库及答案详解
- 厦门市2025年福建厦门市思明区部分单位联合招聘非在编工作人员16人考试笔试历年参考题库典型考点附带答案详解
- 2026年同性恋测试题心理测试及答案
- 2026服装印花行业市场深度调研及发展趋势与投资价值评估研究报告
- 2025-2026学年初中人教版七年级地理下学期经典题专练之日本
- 2026年度全国“安全生产月”知识培训测试及答案
- 银行储蓄存款业务流程汇报材料
- 养老服务中心无障碍通行方案
- 水电工程测量规范(NBT 35029-2023 )
- 2026年广东省揭阳市八年级地理生物会考试卷题库及答案
评论
0/150
提交评论