第8章数组类型 第8章数组类型 8,1一维数组 8.,2二维数组与多维数组 8.3字符数组与字符串 8.4重命名类型 85程序设计举例 BACK
第 8章 数组类型 第 8章 数组类型 8.1 一维数组 8.2 二维数组与多维数组 8.3 字符数组与字符串 8.4 重命名类型 8.5 程序设计举例
第8章数组类型 81一维数组 811一维数组的定义 形式:类型标识符数组名[常量]; 类型标识符描述的是数组分量的类型,是定义数 组类型的基类型,可以是任何类型。数组名代表数组 所占存储空间的首地址。常量表示数组的长度,即数 组中分量的个数
第 8章 数组类型 8.1 一维数组 8.1.1 一维数组的定义 形式: 类型标识符 数组名[常量]; 类型标识符描述的是数组分量的类型, 是定义数 组类型的基类型, 可以是任何类型。数组名代表数组 所占存储空间的首地址。 常量表示数组的长度, 即数 组中分量的个数
第8章数组类型 例如,定义数组,描述下列数据: (1)100个整数: int num [100] (2)1000个学生C语言课程的成绩: float ccj [1000] (3)一年中每月的天数: int month [12] (4)100种商品的价格: float price [100] (5)500个字符类型的数据: char ch [500]
第 8章 数组类型 例如, 定义数组, 描述下列数据: (1) 100个整数: int num[100]; (2) 1000个学生C语言课程的成绩: float ccj[1000]; (3) 一年中每月的天数: int month[12]; (4) 100种商品的价格: float price[100]; (5) 500个字符类型的数据: char ch[500];
第8章数组类型 说明: (1)数组名命名规则和变量名命名规则相同,都遵 循标识符命名规则 (2)数组的长度可以用符号常量描述,但不能用变 量,C语言不提供动态数组 (3)数组以线性方式将数组分量依次存储,所占空 间等于各分量所占空间之和,即数组分量个数乘以基类 型数据所占空间
第 8章 数组类型 说明: (1) 数组名命名规则和变量名命名规则相同,都遵 循标识符命名规则。 (2) 数组的长度可以用符号常量描述,但不能用变 量, C语言不提供动态数组。 (3) 数组以线性方式将数组分量依次存储,所占空 间等于各分量所占空间之和,即数组分量个数乘以基类 型数据所占空间
第8章数组类型 812一维数组的引用 数组元素称为下标变量,下标变量通过数组名、下 标表达式和中括号运算来描述 下标变量的形式为:数组名[下标表达式] 例如,对以上定义的num数组、cj数组,mum数组 的100个分量为num[0]、num[1] num i]、…、num[99],每个分量存放一个整数,num [i]相当于一个int型变量;cej数组的1000个分量为ccj []、ccj[2]、…、ccj[i]、…、cj[999],每 个分量对应一个学生的成绩,ci[i相当于一个foat型 变量
第 8章 数组类型 8.1.2 数组元素称为下标变量,下标变量通过数组名、下 标表达式和中括号运算来描述。 下标变量的形式为: 数组名[下标表达式] 例如,对以上定义的num数组、ccj数组,num数组 的100个分量为 num[0] 、 num[1]、 …、 num [i]、…、 num[99],每个分量存放一个整数, num [i]相当于一个int型变量; ccj数组的1000个分量为ccj [1]、 ccj[2]、 …、 ccj[i]、 …、 ccj[999], 每 个分量对应一个学生的成绩, ccj[i]相当于一个float型 变量
第8章数组类型 说明: (1)下标的取值范围从0到数组长度减1 (2)下标变量相当于基类型变量。 (3)下标往往对应于循环控制变量,通过循环、通过 下标的变化完成数组所有元素的操作,即整个数组的操 作 (4)下标往往隐含有特定的含义 (5)对于下标出界,C语言不进行语法检查
第 8章 数组类型 说明: (1) 下标的取值范围从0到数组长度减1。 (2) 下标变量相当于基类型变量。 (3) 下标往往对应于循环控制变量,通过循环、通过 下标的变化完成数组所有元素的操作,即整个数组的操 作。 (4) 下标往往隐含有特定的含义。 (5) 对于下标出界, C语言不进行语法检查
第8章数组类型 如果希望下标为i的分量对应第i数据,可将定义数 组的大小增1,如: int num [101 float ccj [1001 100个整数用num数组的分量num[1 num 2] 、.num[1]…、num[100]描述,num[i 对应于第个整数。1000个学生的C语言成绩用cgj数组的分 量ci[1]、cgj[2] cgj[i、cj[1000]描述, cij[i对应于第i个学生的成绩
第 8章 数组类型 如果希望下标为i的分量对应第i个数据, 可将定义数 组的大小增1,如: int num[101]; float ccj[1001]; 100 个 整 数 用 num 数组的分量 num [ 1 ] 、 num [2]、 …、…num[1]…、num[100]描述,num[i] 对应于第i个整数。1000个学生的C语言成绩用ccj数组的分 量ccj[1]、 ccj[2]、 …、 ccj[i]、 ccj[1000]描述, ccj[i]对应于第i个学生的成绩
第8章数组类型 813一维数组的初始化 初始化形式: 存储类别类型数组名[常量]={常量1, 常量2,…,常量n}; 初始化数据用花括号括起
第 8章 数组类型 8.1.3 一维数组的初始化 初始化形式: 存储类别 类型 数组名[常量]={常量1, 常量2, …, 常量n}; 初始化数据用花括号括起
第8章数组类型 例如: (1) static int month[12]={31,29,31,30,31,30, 31,31,30,31,30,31}; month [0]=31, month [1]=29, month [2]=31 month [ 3]=30, month [4]=31, month [5]=30, month [6]=31, month[7]=31, month[8]=30, month[9] =31, month[1l]=30, month[12]=31 (2)static char ch [5]='a, ch[O]=a,ch[1]=e',ch[2]=i',ch[3]=o', ch[4]
第 8章 数组类型 例如: (1) static int month[12]={31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; month[0]=31,month[1]=29,month[2]=31, month[3]=30, month[4]=31,month[5]=30,month [6]=31, month[7]=31, month[8]=30,month[9] =31,month[11]=30,month[12]=31 (2) static char ch[5]={′a′ , ′e′ , ′i′ , ′o′ , ′u′}; ch[0]=′a′, ch[1]=′e′, ch[2]=′i′, ch[3]=′o′, ch[4]=′u′
第8章数组类型 说明: (1)对静态存储数组和外部存储数组,默认初值为0 (2)可以只给一部分数组元素初始化。例如: static int a50]={70,75,60,80,90}; 相当于a[0]=70,a[l]=75,a[2]=60,a[3]=80, a[4]=90,后面没有给出的数组元素之值全部为0
第 8章 数组类型 说明: (1) 对静态存储数组和外部存储数组,默认初值为0。 (2) 可以只给一部分数组元素初始化。例如: static int a [50]={70, 75, 60, 80, 90}; 相当于a[0]=70, a[1]=75, a[2]=60, a[3]=80, a[4]=90, 后面没有给出的数组元素之值全部为0