文档介绍:第七章数组
整型
基本类型: 实型
字符型、枚举类型
数组类型
构造类型: 结构体类型
公用体类型
指针类型
空类型
C语言的
数据类型
什么构造类型?
所谓构造类型是指由基本类型数据按一定的规则组成的,是用户自己按规则定义的。数组是构造类型之一。
什么是数组?
在数学中我们学过数列、矩阵的概念,
数列通常表示为:a1 、a2 、a3、….、an
矩阵通常表示为:
a11
a12
a13
a14
a21
a22
a23
a24
2×4
在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]、num[3]、um[4]
表示一个学号数组。
一维数组的定义和引用
1、一维数组的定义
定义方式:
数据类型说明符数组名[常量表达式];
例 long num[4] ;
表示num数组包含五个元素分别是:num[0]、num[1]、num[2]、num[3]、num[4]
注意:下标从 0 开始,数组元素取值类型是长整型。
定义数组中元素的取值类型
定义数组中元素的个数
一维数组在内存的存储形式:
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、一维数组的引用
数组必须先定义,后使用
只能逐个引用数组元素,不能一次引用整个数组
数组元素表示形式: 数组名[下标]
其中:下标可以是常量、变量或表达式。
例 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[] 、a[k]、a[10-k] 都是合法的。
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 ]) ;
}
一维数组元素的输出
一维数组元素的输入
使用数组定义和数组元素时的几点注意:
1、把数组定义时方括号中的数和元素下标值区别开
方括号中的数表示数组含有的元素个数
元素下标值是标识具体的数组元素的
方括号中的数不能是变量,只能是常量。
2、数组元素的下标可以是常量, 也可以是变量,
其值必须是非负数, 如果是小数,系统自动取整。
3、数组必须先定义后使用。
4、系统不检查数组元素下标的越界问题。
5、一维数组元素的输入、输出使用单层循环语句。
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;
初始化方式