第七章数组 整型 基本类型:实型 字符型、枚举类型 数组类型 C语言的 构造类型:结构体类型 公用体类型 数据类型 指针类型 空类型
第七章 数组 整型 基本类型: 实型 字符型 、 枚举类型 数组类型 构造类型: 结构体类型 公用体类型 指针类型 空类型 C语言的 数据类型
什么构造类型? 所谓构造类型是指由基本类型数据按一定 的规则组成的,是用户自己按规则定义的 。数组是构造类型之一。 什么是数组? 在数学中我们学过数列、矩阵的概念, 数列通常表示为:a1、a2、a3、……、an l11a12 13 14 矩阵通常表示为: a 21 a 23 2×4
什么构造类型? 所谓构造类型是指由基本类型数据按一定 的规则组成的,是用户自己按规则定义的 。数组是构造类型之一。 什么是数组? 在数学中我们学过数列、矩阵的概念, 数列通常表示为:a1 、a2 、a3、….、an 矩阵通常表示为: a11 a12 a13 a14 a21 a22 a23 a24 2×4
在C语言中表示数组和矩阵的方法是: 数组:a[o]、a[1]、a[2]、a[3]、a[4]、a[5] 其中a:称为数组名。 方括号中的数:称为下标 下标是一个数时,也就是数列,称为 维数组 下标是两个数时,也就是矩阵,称为二 维数组。还有三维数组、四维数组等
在C语言中表示数组和矩阵的方法是: 数组:a[0]、a[1]、a[2]、a[3]、a[4]、a[5] 其中 a :称为数组名。 方括号中的数:称为下标 下标是一个数时,也就是数列,称为一 维数组。 下标是两个数时,也就是矩阵,称为二 维数组。还有三维数组、四维数组等
例如:有五名学生的一组学号 2004035012、2004035013、2004035014、 2004035015、2004035016。 如果用数组来表示的话可以用统一的数 组名比如:num, 用下标区别每个变量。即 num[0]、num[1、num[2]、nm[3]、um[4] 表示一个学号数组
例如:有五名学生的一组学号: 2004035012、2004035013、2004035014、 2004035015、2004035016。 如果用数组来表示的话可以用统一的数 组名比如:num, 用下标区别每个变量。 即 num[0]、num[1]、num[2]、num[3]、um[4] 表示一个学号数组
8一维数组的定义和引用 ★1、一维数组的定义 定义数组 中元素的 定义数组中元 个数 必定义方式 素的取值类型 数据类型说明符数组名[常量表达式]; 例 long num4]; 表示nm数组包含五个元素分别是:mum0、numl num2]、numl3l、num4 注意:下标从0开始,数组元素取值类型是长整型
§7.1 一维数组的定义和引用 1、一维数组的定义 ❖定义方式: 数据类型说明符 数组名[常量表达式]; 例 long num[4] ; 表示num数组包含五个元素分别是:num[0]、num[1] 、num[2]、num[3]、num[4] 注意:下标从 0 开始,数组元素取值类型是长整型。 定义数组中元 素的取值类型 定义数组 中元素的 个数
维数组在内存的存储形式: num就是数组存储区域的首地址,即num=200。 nuln 200 numO]2004035012 2044 num[12004035013 208 一组变量 num2]2004035014 212 num[3]2004035015 216 num412004035016
一维数组在内存的存储形式: num 就是数组存储区域的首地址,即 num=200 。 一组变量 num 200 num[0] num[1] num[2] num[3] num[4] 204 208 212 216 2004035012 2004035013 2004035014 2004035015 2004035016
2、一雏数组的引用 心数组必须先定义。后使用 今只能遝个引用数组元素,不能一次引用整个数组 心数组元素表示形式:数组名[下标 其中:下标可以是常量、变量或表达式。 例inta[10 scant“%d”,a);(×) 必须inta0; for(=0j<10;j++) scanf(%od", &ajD 人例如:intk=5; a[a[15]、akl、a[10-k]都是合法的
2、一维数组的引用 ❖数组必须先定义,后使用 ❖只能逐个引用数组元素,不能一次引用整个数组 ❖数组元素表示形式: 数组名[下标] 其中:下标可以是常量、变量或表达式。 例 int a[10]; scanf(“%d”,a) ; () 必须 int a[10]; for(j=0;j<10;j++) scanf(“%d”, &a[j]); 例如: int k=5 ; a[1]、a[1.5] 、a[k]、a[10-k] 都是合法的
3、一维数组元素值的输入与输出 例如: main( 维数组元素的输入 Rint i, a10: or(i=0;i<10;i++) scanf(“%d”,&ail) 维数组元素的输出 for(=; is10; it+) printf“%d”,a[il);
3、一维数组元素值的输入与输出 例如 : main() {int i , a[10]; for(i=0 ; i<10 ; i++) scanf(“%d” , & a[i ]) ; for(i=0 ; i<10 ; i++) printf (“%d ”, a[i ]) ; } 一维数组元素的输出 一维数组元素的输入
使用数组定义和数组元素时的几点注意 把数组定义时方括号中的数和元素下标值区别开 方括号中的数表示数组含有的元素个数 元素下标值是标识具体的数组元素的 方括号中的数不能是变量,只能是常量。 2、数组元素的下标可以是常量,也可以是变量, 其值必须是非负数,如果是小数,系统自动取整 3、数组必须先定义后使用。 4、系统不检査数组元素下标的越界问题。 5、一维数组元素的输入、输出使用单层循环语句
使用数组定义和数组元素时的几点注意: 1、把数组定义时方括号中的数和元素下标值区别开 方括号中的数表示数组含有的元素个数 元素下标值是标识具体的数组元素的 方括号中的数不能是变量,只能是常量。 2、数组元素的下标可以是常量, 也可以是变量, 其值必须是非负数, 如果是小数,系统自动取整。 3、数组必须先定义后使用。 4、系统不检查数组元素下标的越界问题。 5、一维数组元素的输入、输出使用单层循环语句
★4、一维数组的衩始化 初始化方式 int明={1p,3,4,5名 数组初始化在賽尧黠欷鍪组元素赋初值 等价于:l0 绵译阶羟垡吝盂姴認稙↓4]-5 只给部分数组元素赋初值 inta!S}{6,2,3}; 等价于:a0=6;叫l=2:a2l-3;a31=0;a4l-0 inta={1,2,3,4,5,6}; 瘺译系统根据初值个数确定数组维数值
4、一维数组的初始化 在定义数组时,为数组元素赋初值 (在编译阶段使之得到初值) ❖说明: ⚫数组不初始化,其元素值为随机数 如⚫当全部数组元素赋初值时,可不指定数组长度 int a[5]={6,2,3}; 等价于: a[0]=6; a[1]=2;a[2]=3; a[3]=0; a[4]=0; 如 int a[3]={6,2,3,5,1}; () ⚫只给部分数组元素赋初值 int a[]={1,2,3,4,5,6}; 编译系统根据初值个数确定数组维数值 int a[5]={1,2,3,4,5}; 等价于:a[0]=1; a[1]=2; a[2]=3; a[3]=4; a[4]=5; 初始化方式