




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 第九章第九章 数组数组数据类型基本类型(简单类型)构造类型(组合类型)指针类型空类型(void)数值类型字符类型(char)枚举类型(enum)整型实型单精度(float)双精度(double)短整型(short)整型(int)长整型(long)数组类型结构类型(stru)共用类型(union)文件类型(file)c引 入上一页下一页暂 停重 放系统返 回休息一、数组的概念 数组是指一组同类型数据组成的序列。数组中的每个数据称为一个元素,用一个统一的名字来标识,用下标指示数组中的各个元素。 二、数组的维数一维:只含有一个下标的数组称为一维数组 a9二维:含有两个下标的数组称为二维数组 b34
2、多维:含有多个下标的数组称为多维数组 c2354上一页下一页暂 停重 放系统返 回休息 第一节第一节 一维数组一维数组一、定义格式: 类型标识符 数组名常量表达式;(1) 用 , 不能用 ( ) (2) 下标只能用常量 (3) 下标必须是大于零的整数 (4) 下标最大元素个数是65535 指明数组中各元素的数据类型指明数组包含的元素个数举例:int ab10 ;说明:练习上一页下一页暂 停重 放系统返 回休息二、数组元素的初始化在定义数组时对各元素指定初始值,称为数组的初始化例:int ab5=1,3,5,7,9 ;内存中存储格式为:12579例:char c10 = c, ,l,a,n,g,
3、u,a,g,e 内存中存储格式为:clanguage ab0 ab1 ab2 ab3 ab4c0 c1 c2 c3 c4 c5 c6 c7 c8 c9abc上一页下一页暂 停重 放系统返 回休息说明:1. 下标是从 0 开始的2. 初始化数据用 括起,各数据间用 “ ,” 分隔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
4、=1.0,2.0,3.5; float b8=1.0,2.0,3.5; 上一页下一页暂 停重 放系统返 回休息三、数组元素的引用引用格式: 数组名下标(1) 定义与引用的区别int a9; a9=10 ; (2) 数组元素的赋值只有在初始化时才能整体赋值,以后只能通过逐个赋值的方法进行。 例: int b3=1,0,5 ; 例: a2 = 3 ;说明:a0=a4+a2;int b3 ; b = 1,0,5 ; 上一页下一页暂 停重 放系统返 回休息上一页下一页暂 停重 放系统返 回休息二、数组首地址引用方法第二节 一维数组和指针例: *(a+2)= 3 ; scanf(“%d”, a+i);
5、printf(“%d”,*(a+i);例:int a5=1,3,5,7,9 ;内存中存储格式为:13579 a0 a1 a2 a3 a4地址a+1a+2a+3a+4a一、一维数组和数组元素的地址引用格式: 数组名+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;内存中存储格式为:12579 a0 a1 a2 a3 a4p+1p+2p+3p+4p三、利用指针引用一维数组元素引
6、用格式: 指针名+i上一页下一页暂 停重 放系统返 回休息例: p2=5 ; for (i=0;i=4;i+) scanf(“%d”, &pi); for (i=0;i=4;i+) printf(“%d”, pi); 当指针指向一维数组以后,就可以像使用数组一样使用指针内存中存储格式为:12579 a0 a1 a2 a3 a4p1p2p3p4p0四、用带下标的指针引用一维数组元素引用格式: 指针名i例: p=&a2 ; *p=2; for (i=0;ib 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”); pri
8、ntf(“%8d”,ai); 1 2 3 4 56 7 8 9 1011 12 13 14 1516 17 18 19 20printf( “%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;上一页下一页暂 停重 放系统返 回休息输入十个数,利用 计算其均方差21)(xxnnimain()int i; float sum
9、=0, a10, av; for (i=0;i10;i+) scanf(“%f”,&ai); av=aver(a,10);for (i=0;i10;i+) sum=sum+(ai-av)*(ai-av);printf(“%f”,sum); 第五节第五节 二维数组二维数组一、引言假设某班级学生的成绩如下:李四 赵五 60 90 83 79 93 75姓名 语文 数学 物理 化学 英语 政治张三85 69 90 95 89 65 87 85 79 82 98 80 李六 60 90 83 79 93 75张涛 60 90 83 79 93 75.王天 78 87 65 87 80 69上一页下一页
10、暂 停重 放系统返 回休息二、定义格式: 类型 数组名常量表达式1常量表达式2举例: int b34 ; 说明:1. 二维数组的排列顺序是按行排列的2. 二维数组所有元素个数不能大于65535 int b200400 ;b00b01b02b03b10b11b12b13b20b21b22b23b00b10b20b01b11b21b02b12b22b03b13b23上一页下一页暂 停重 放系统返 回休息三、初始化同一维数组一样,二维数组也可以在定义的时候赋值int b34= 1,2,3,4, 5,6,7,8, 9,10,11,12 ; 说明:1. 初始化可以采用分行的方法完成 2. 也可以直接按各
11、个元素在数据中的排列顺序直接列出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;123654int a3=1,2,1 12 0100a00 a01 a02 a1
12、0 a11 a12 4. 任何时候下标2不能省略,因为系统无法判断元素个数121000a00 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 ); 上一页下一页暂 停重 放系统返 回休息指向指针的指针i4p2&ip1&p2 定义方法: 类型标识符 *指针变量名 *结合方向:自右自左 *p 相当于 *(*p) 例:int *p1; int *p2; int i=3; p2=&i; p1=&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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第5课 歌声嘹亮-子程序设计和机器人发音说课稿-2025-2026学年初中信息技术粤教清华版九年级下册-粤教清华版
- 3.2 土地资源说课稿-2024-2025学年人教版地理八年级上册
- 《教头风雪山神庙》《装在套子里的人》联读 教学设计 2023-2024学年统编版高中语文必修下册
- 2025年中考数学试题分类汇编:统计(9大考点57题) (第1期)原卷版
- 6摆的研究教学设计-2025-2026学年小学科学浙教版2017五年级下册-浙教版
- 9 我的老师教学设计-2025-2026学年小学美术广西版二年级上册-广西版
- 5.1 传感器的原理教学设计-2025-2026学年高中物理沪教版2019选择性必修第二册-沪教版2019
- 2025年行政能力测试题库及答案
- 4.2.2等差数列的前n项和公式(一)教学设计-2023-2024学年高二上学期数学人教A版(2019)选择性必修第二册
- 在北京的金山上(教学设计)-2023-2024学年花城版音乐三年级下册
- 开学第一课假期收心主题班会 课件
- 中山酒店行业状况分析
- 船员劳动合同
- 液压车间生产管理制度
- 南城一中高三年级工作计划
- 企业重组改变组织结构以提高效率
- 植保无人机应急处置预案
- 湖北十堰生产实习报告
- 营销体系之业绩如何做增量10大方法
- 《中国古代的服饰》课件
- 行业标准项目建议书
评论
0/150
提交评论