《C语言程序设计》课程教学资源(PPT课件讲稿)第五章 数组

第5章数组 51数组概述 52一维数组的定义及应用 53二维数组的定义及应用 54多维数组的定义及应用 5.5字符数组
第5章 数组 5.1 数组概述 5.2 一维数组的定义及应用 5.3 二维数组的定义及应用 5.4 多维数组的定义及应用 5.5 字符数组

5.1概述 令在程序设计中,常需要大量相同数据类型的变量来保存 数据,若采用简单变量的定义方式,则需要大量不同的 标识符作为变量名,并且这些变量在内存中的存放是随 机的,随着这种变量的增多,组织和管理好这些变量会 使程序变得复杂。对于这种情况,为了处理方便,把具 有相同类型的若干变量按有序的形式组织起来。这些按 序排列的同类数据元素的集合称为数组
❖ 5.1 概述 ❖ 在程序设计中,常需要大量相同数据类型的变量来保存 数据,若采用简单变量的定义方式,则需要大量不同的 标识符作为变量名,并且这些变量在内存中的存放是随 机的,随着这种变量的增多,组织和管理好这些变量会 使程序变得复杂。对于这种情况,为了处理方便,把具 有相同类型的若干变量按有序的形式组织起来。这些按 序排列的同类数据元素的集合称为数组

在C语言中,数组具有以下几个特点: 令数组元素的个数即数组的长度必须在定义时确定,在程 序中不可改变。 在同一数组中的数组元素的类型是相同的 令数组元素的作用相当于简单变量。 同一数组中的数组元素在内存中占据的地址空间是连续 的
在C语言中,数组具有以下几个特点: ❖ 数组元素的个数即数组的长度必须在定义时确定,在程 序中不可改变。 ❖ 在同一数组中的数组元素的类型是相同的。 ❖ 数组元素的作用相当于简单变量。 ❖ 同一数组中的数组元素在内存中占据的地址空间是连续 的

52一维数组的定义及应用 5.2.1一维数组的定义 冷一维数组通常是指由一个下标来确定数组元素的数组,它的定义 格式为 类型说明符数组名[常量表达式] 说明: (1)数据类型符可以是int、char和foa等基本类型或构造类型,它 表明每个数组元素所具有的数据类型。 (2)数组名的命名规则同变量名完全相同。“叮是下标运算符,它 的个数反映了数组的维数,一维数组只有一个下标运算符。数组 名不能与其它变量名相同 (3)常量表达式的值是数组的长度,即数组中所包含的元素个数 常量表达式通常是一个整形常量或整型常量表达式,不可以含有 变量,这是因为定义数组长度的表达式的值的计算是在编译时完 成的,而变量的取值是在程序运行时得到的
5.2 一维数组的定义及应用 ❖ 5.2.1 一维数组的定义 ❖ 一维数组通常是指由一个下标来确定数组元素的数组,它的定义 格式为: 类型说明符 数组名[常量表达式]; ❖ 说明: (1)数据类型符可以是int、char和float等基本类型或构造类型,它 表明每个数组元素所具有的数据类型。 (2)数组名的命名规则同变量名完全相同。“[]”是下标运算符,它 的个数反映了数组的维数,一维数组只有一个下标运算符。数组 名不能与其它变量名相同。 (3)常量表达式的值是数组的长度,即数组中所包含的元素个数。 常量表达式通常是一个整形常量或整型常量表达式,不可以含有 变量,这是因为定义数组长度的表达式的值的计算是在编译时完 成的,而变量的取值是在程序运行时得到的

(4)如同简单变量一样,相同类型的数组、变量可以在一个类型 说明符下一起说明,数组之间数组和变量之间用逗号隔开 (5)C语言数组元素的编号是从0开始的。 (6)在定义数组的过程中,表示数组元素个数的常量表达式为空 时,决定数组元素个数的因素有以下两种情况:一是在对数组 行定的时:奇给数组虫每个死素单包 是该数组已在 其他场合定义了与之相关的长度,基具体情况是该数组是一个 (7)C语言规定,数组不能以整体的形式参加数据处理,参加数 据处理的只能是数组的元素。若是结构体数组等,则只能是其 最底层的成分分量,即属于基本数据类型的成分分量。 (8)数组也有存储属性的问题,它根据存储属性关键字和定义的 物理位置决定该数组的存在性和可见性。数组定义以后,编译 系统(计算机)将在内存中自动地开辟一块连续的存储单元用于 存放数组元素,数组名表示存储单元的首地址,存储单元的多 由数组的类型和数组的大小决定
(4)如同简单变量一样,相同类型的数组、变量可以在一个类型 说明符下一起说明,数组之间数组和变量之间用逗号隔开。 (5)C语言数组元素的编号是从0开始的。 (6)在定义数组的过程中,表示数组元素个数的常量表达式为空 时,决定数组元素个数的因素有以下两种情况:一是在对数组 进行定义的同时,系统给出了该数组中每个元素的初值,即对 其初始化,从而可以确定该数组中元素的个数;二是该数组已在 其他场合定义了与之相关的长度,其具体情况是该数组是一个 在函数外部中已经定义了的外部数组。 (7)C语言规定,数组不能以整体的形式参加数据处理,参加数 据处理的只能是数组的元素。若是结构体数组等,则只能是其 最底层的成分分量,即属于基本数据类型的成分分量。 (8)数组也有存储属性的问题,它根据存储属性关键字和定义的 物理位置决定该数组的存在性和可见性。数组定义以后,编译 系统(计算机)将在内存中自动地开辟一块连续的存储单元用于 存放数组元素,数组名表示存储单元的首地址,存储单元的多 少由数组的类型和数组的大小决定

522一维数组的引用 令与变量一样,数组也必须先定义后使用。C语言规定数 组元素只能逐个被引用,不能一次引用整个数组。数组 元素的引用方式为:数组名[下标] 令对数组元素进行引用时应注意下标的范围。C语言规定 下标的范围在:下界≤下标<上界,且下界为零,上界 为数组定义时常量表达式的值。 在程序的运行中,也可以利用赋值语句给数组元素赋值。 令说明: (1)下标表达式可以是整型常量表达式或含变量的整型 表达式 (2)C编译系统对数组不做下标“越界”的检査
5.2.2 一维数组的引用 ❖ 与变量一样,数组也必须先定义后使用。C语言规定数 组元素只能逐个被引用,不能一次引用整个数组。数组 元素的引用方式为:数组名[下标] ❖ 对数组元素进行引用时应注意下标的范围。C语言规定 下标的范围在:下界≤下标<上界,且下界为零,上界 为数组定义时常量表达式的值。 ❖ 在程序的运行中,也可以利用赋值语句给数组元素赋值。 ❖ 说明: (1)下标表达式可以是整型常量表达式或含变量的整型 表达式 (2)C编译系统对数组不做下标“越界”的检查

关于数组的引用需要注意以下4点 (1)数组元素和普通的基本类型变量一样,可出现在任何合法的 C语言表达式中,也可作为函数参数使用。 (2)C语言规定数组不能整体引用,每次只能引用数组的一个元 素。例如,不能用赋值表达式语句对数组元素进行整体赋值 因为在C语言中,数组名具有特殊的含义,它代表数组的首地 址。 (3)由于系统在运行过程中并不自动检测元素下标值是否越界 因此在编写程序时必须格外小心,由程序设计者自己来确保元 素的正确引用,以免因下标越界而造成对其他存储单元中数据 的破环 (4)下面的引用方式都是非法的: score(5);/不能使用圆括号* matrix(2,3);/*不能使用圆括号,且不能将行下标和列下标写在 个括号内* matrix2,3];/不能将行下标和列下标写在一个括号内 ☆ score=(1,2,3,4,5);/不能用赋值表达式语句对数组元素进行整
关于数组的引用需要注意以下4点 (1)数组元素和普通的基本类型变量一样,可出现在任何合法的 C语言表达式中,也可作为函数参数使用。 (2)C语言规定数组不能整体引用,每次只能引用数组的一个元 素。例如,不能用赋值表达式语句对数组元素进行整体赋值, 因为在C语言中,数组名具有特殊的含义,它代表数组的首地 址。 (3)由于系统在运行过程中并不自动检测元素下标值是否越界, 因此在编写程序时必须格外小心,由程序设计者自己来确保元 素的正确引用,以免因下标越界而造成对其他存储单元中数据 的破坏。 (4)下面的引用方式都是非法的: ❖ score(5); /*不能使用圆括号* ❖ matrix(2,3); /*不能使用圆括号,且不能将行下标和列下标写在 一个括号内*/ ❖ matrix[2,3]; /*不能将行下标和列下标写在一个括号内*/ ❖ score=(1,2,3,4,5); /*不能用赋值表达式语句对数组元素进行整 体赋值*/

523一维数组的初始化 C语言中除了可用赋值语句或输入语句给数组元素赋值外, 还可以在定义数组时直接给数组元素赋初值,其初始化形 式如下: 冷存储类型数据类型数组名[常量表达式F={初始值表}; 令初始值表为数组元素的初始值数据,不止一个数据时,其 间用逗号分开。数组初始化是在编译阶段进行的。这样将 减少运行时间,提高效率。一维数组可以用以下几种方式 对数组元素进行初始化: 1对全部或部分数组元素赋初值例如:intx8] {1,2,3,4,5,6,7,8} 2数组进行初始化时,方括号中的常量表达式也可以缺省。例 如 int data=1315,17,6}
5.2.3 一维数组的初始化 ❖ C语言中除了可用赋值语句或输入语句给数组元素赋值外, 还可以在定义数组时直接给数组元素赋初值,其初始化形 式如下: ❖ 存储类型 数据类型 数组名[常量表达式]={初始值表}; ❖ 初始值表为数组元素的初始值数据,不止一个数据时,其 间用逗号分开。数组初始化是在编译阶段进行的。这样将 减少运行时间,提高效率。一维数组可以用以下几种方式 对数组元素进行初始化: 1.对全部或部分数组元素赋初值例如:int x[8]= {1,2,3,4,5,6,7,8}; 2.数组进行初始化时,方括号中的常量表达式也可以缺省。例 如: int data[]={13,15,17,6};

3对全部数组元素初始化为0时,可以写成: ntx5]=(0,0,0,0,0}或更简单地有:intx5]={0} 注意:如果不对数组元素赋初值,系统不保证数组元 素具有特定的值,但如果赋予哪怕仅一个数组元素的 初值,则其余的数组元素会得到特定的值“0” 当初始数据个数少于数组元素个数时,则多于数据个 数的那些元素赋予零值。例如: int ndig[5]={24,6} 其结果是: digit[0]<2, digit[1←4, digit it[2]←6, digiti3]←0, digit4]0。 令大括号对中间的初始数据可以缺省,但是用于分隔数 据的逗号是不可以省略的。缺省的数据被编译系统视 为零值。例如: int datal4]={2,4}其结果是: digit[OI←0, digit12, digit[2]←0, digit[3←4
❖ 3.对全部数组元素初始化为0时,可以写成: int x[5]={0,0,0,0,0};或更简单地有:int x[5]={0}; ❖ 注意:如果不对数组元素赋初值,系统不保证数组元 素具有特定的值,但如果赋予哪怕仅一个数组元素的 初值,则其余的数组元素会得到特定的值“0”。 ❖ 当初始数据个数少于数组元素个数时,则多于数据个 数的那些元素赋予零值。例如:int ndigit[5]={2,4,6}; 其结果是:ndigit[0]←2,ndigit[1]←4,ndigit[2]←6, ndigit[3]←0,ndigit[4]←0。 ❖ 大括号对中间的初始数据可以缺省,但是用于分隔数 据的逗号是不可以省略的。缺省的数据被编译系统视 为零值。例如:int data[4]={,2,,4};其结果是: ndigit[0]←0,ndigit[1]←2,ndigit[2]←0,ndigit[3]←4

数组的应用 524一维数组的应用 令可以在程序执行过程中,对数组作动态赋值。这时可用循 环语句配合 scanf函数逐个对数组元素赋值 53二维数组的定义及应用 二维数组的应用很广,例如平面上的一组点的集合就可用 二维数组表示.每个点由代表着x轴的横坐标和代表着y轴 的纵坐标来表示 平面上的点可用二维数组来表示: a n nn
数组的应用 ❖ 5.2.4 一维数组的应用 ❖ 可以在程序执行过程中,对数组作动态赋值。这时可用循 环语句配合scanf函数逐个对数组元素赋值。 ❖ 5.3 二维数组的定义及应用 ❖ 二维数组的应用很广,例如平面上的一组点的集合就可用 二维数组表示.每个点由代表着x轴的横坐标和代表着y轴 的纵坐标来表示。 ❖ 平面上的点可用二维数组来表示:
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《C语言程序设计》课程教学资源(PPT课件讲稿)第四章 C语言程序结构.ppt
- 《C语言程序设计》课程教学资源(PPT课件讲稿)第三章 运算符和表达式.ppt
- 《C语言程序设计》课程教学资源(PPT课件讲稿)第二章 数据类型、常量和变量.ppt
- 《C语言程序设计》课程教学资源(PPT课件讲稿)第一章 C语言概述.ppt
- 《C语言程序设计》课程教学资源:第十一章 实例演示.ppt
- 《C语言程序设计》课程教学资源:第十章 文件.ppt
- 《C语言程序设计》课程教学资源:绪论.ppt
- 《计算机文化基础》课程PPT教学课件(电子教案)第八章 计算机网络基础与 nternet的使用.ppt
- 《计算机文化基础》课程PPT教学课件(电子教案)第七章 FrontPage XP网页制作.ppt
- 《计算机文化基础》课程PPT教学课件(电子教案)第六章 Power Point XP演示文 稿制作.ppt
- 《计算机文化基础》课程PPT教学课件(电子教案)第五章 Exce XP电子表格处理.ppt
- 《计算机文化基础》课程PPT教学课件(电子教案)第四章 Word XP文字处理.ppt
- 《计算机文化基础》课程PPT教学课件(电子教案)第三章 windows xp操作系统.ppt
- 《计算机文化基础》课程PPT教学课件(电子教案)第二章 指法及汉字录入.ppt
- 《计算机文化基础》课程PPT教学课件(电子教案)第一章 电子计算机的基础知识.ppt
- 《计算机文化基础》课程教学资源(教学大纲).doc
- 黔南电大:《计算机文化基础》电子课件.ppt
- 《计算机文化基础》课程教学资源(PPT课件讲稿)第一章 计算机基础知识.ppt
- 《计算机网络基础与internet应用》讲义.ppt
- 《计算机文化基础》课程教学资源(PPT课件讲稿)计算机系统的组成.ppt
- 《C语言程序设计》课程教学资源(PPT课件讲稿)第六章 指针.ppt
- 《C语言程序设计》课程教学资源(PPT课件讲稿)第七章 函数.ppt
- 《C语言程序设计》课程教学资源(PPT课件讲稿)第八章 结构体、共用体和枚举类型.ppt
- 《C语言程序设计》课程教学资源(PPT课件讲稿)第九章 预处理命令和常用库函数.ppt
- 《多媒体技术基础》课程教学资源(PPT课件讲稿)第一章 绪论.ppt
- 《多媒体技术基础》课程教学资源(PPT课件讲稿)霍夫曼编码、预测编码、统计编码、变换编码.ppt
- 《多媒体技术基础》课程教学资源(PPT课件讲稿)第三章 多媒体数据压缩技术.ppt
- 《多媒体技术基础》课程教学资源(PPT课件讲稿)复习题.ppt
- 《多媒体技术基础》课程教学资源(PPT课件讲稿)第十章 分布式多媒体处理技术.ppt
- 《多媒体技术基础》课程教学资源(PPT课件讲稿)第十一章 多媒体应用.ppt
- 《多媒体技术基础》课程教学资源(PPT课件讲稿)第五章 多媒体软件平台.ppt
- 《多媒体技术基础》课程教学资源(PPT课件讲稿)第六章 多媒体编程技术.ppt
- 《多媒体技术基础》课程教学资源(PPT课件讲稿)第七章 多媒体通信网络技术.ppt
- 《多媒体技术基础》课程教学资源(PPT课件讲稿)第八章 多媒体信息管理技术.ppt
- 《多媒体技术基础》课程教学资源(PPT课件讲稿)第九章 多模态人机交互技术.ppt
- 《数据库原理及应用》课程教学电子教案(PPT课件)第十章 菜单栏.ppt
- 《数据库原理及应用》课程教学电子教案(PPT课件)第一章 数据库管理系统导论.ppt
- 《数据库原理及应用》课程教学电子教案(PPT课件)第二章 数据库管理系统基础知识.ppt
- 《数据库原理及应用》课程教学电子教案(PPT课件)第三章 数据表的创建及操作.ppt
- 《数据库原理及应用》课程教学电子教案(PPT课件)第四章 数据库.ppt