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

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

文档信息
资源类别:文库
文档格式:PPT
文档页数:22
文件大小:244.5KB
团购合买:点击进入团购
内容简介
第5章数组 5.1数组概述 5.2一维数组的定义及应用 5.3二维数组的定义及应用 5.4多维数组的定义及应用 5.5字符数组
刷新页面文档预览

第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轴 的纵坐标来表示。 ❖ 平面上的点可用二维数组来表示:

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