文档介绍:第七章数组
1
数组
1 一维数组的定义和引用
2 二维数组的定义和引用
3 字符数组
2
数组
在C语言中,除了前面介绍的基本类型之外,还有另外一些数据类型---构造类型。其中数组就属于构造类型中的一种。
数组是有序数据的集合。数组中的每一个元素都属于同一个数据类型。用一个统一的数组名和下标来唯一的确定数组中的元素。
可以用来解决所论数据不仅与其取值状况有关,还与其所在位置有关(有序性)的问题。
数组特点:排列有序、取名同源、彼此自由、联合成组
3
一维数组的定义和引用
4
数组
一维数组的定义和引用
一维数组的定义
一般形式:类型说明符数组名[常量表达式];
例如: int a[10]
说明:
数组名定名规则和变量名相同,遵循标识符定名规则;
数组名后面是用方括号括起来的常量表达式;
定义表达式的常量表达式表示元素的个数,即数组长度;
定义表达式中的常量表达式可以是常量和符号常量,但不能是变量,即不允许进行动态定义。
a[0] a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9]
1 20 4 60 9 3 98 0 11 50
5
数组
一维数组的定义和引用
一维数组元素的引用
数组元素的引用形式: 数组名[下标]
以int a[n]定义的数组的下标从0开始,n-1结束
每次可引用一个数组元素,不能引用整个数组
一个数组元素就如同一个简单变量
下标可以是整型常量或整型表达式
常量和表达式作下标 a[0]=a[5]+a[7]-a[2*3];
变量作下标 a[i]=a[i]+1;
数组元素做下标 a[a[0]] => a[1]
6
数组
一维数组的定义和引用
一维数组元素的引用
[例] #include ""
main() {
int i, a[10];
for (i=0;i<=9;i++)
a[i]=i;
for (i=9; i>=0;i--)
printf("%d",a[i]);
}
9 8 7 6 5 4 3 2 1 0
7
数组
一维数组的定义和引用
一维数组的初始化
同简单变量一样,数组元素在说明后就对其赋值,如果用输入语句或赋值语句使数组中的元素得到值,会占用运行时间,因此可以使数组在程序运行之前初始化,即在编译阶段使之得到初值。
[例] #include ""
main() {
int i, a[10];
for (i = 0;i <= 9;i++)
scanf("%d",&a[i]);
}
8
数组
一维数组的定义和引用
一维数组的初始化
初始化方法:从数组的第一个元素开始依次给出初始值表;表中各值之间用逗号分开,并用一对大括号括起来。
在定义数组时对数组元素赋予初值
int a[10]={0,1,2,3,4,5,6,7,8,9};
只给一部分元素赋初值
int a[10]={0,1,2,3,4};
欲使一个数组中全部元素初值为0,只能写成:
int a[10] = {0,0,0,0,0,0,0,0,0,0};或int a[10] = {0}
不能写成:int a[10] = {0*10};//error
在对全部数组元素赋初值时,可以不指定数组长度
int a[ ]={0,1,2,3,4,5};
9
课堂练习
指出下列错误
#define SIZE 4
main() {
int a[SIZE]={0,2,3,3,4};
int a[SIZE-5];
int a[SIZE+9];
int c[];
…
}
10