文档介绍:第7章数组及其应用
主要内容
一维数组的定义和引用
二维数组的定义和引用
字符数组
应用实例
本章小结
数组的概念
数组是相同数据类型元素的集合(如矩阵运算,表格数据等),有统一的数组名,数组中的每个元素用下标来区分。
以前的变量称为简单变量,数组元素称为下标变量。
特点:
构造数据类型之一,数组中所有数据按照顺序存放在一个连续的存储空间中。
好处:
同属一个数组名,不需单独定义名字。
顺序存储,可使用同一种方式对数组元素进行各种操作。
一维数组的定义
一维数组元素的引用
一维数组的初始化
一维数组程序举例
一维数组的定义和引用
一维数组的定义
一维数组的一般形式
类型说明符:定义数组中各元素的数据类型
常量表达式:说明数组的大小(即数组中元素的个数)。
注意事项:
数组名的命名规则与变量名相同。
常量表达式必须为整型,可以包含符号常量,但不能是变量,并用方括号括起来(不能用圆括号)。
类型说明符数组名[常量表达式];
合法标识符
[ ]:数组运算符
单目运算符
优先级(1)
左结合
不能用( )
一维数组的定义
int a[10];
定义一个有10个元素的数组,每个元素的类型均为int。
使用a[0]、a[1]、…、a[9]这样的形式访问每个元素。数组元素的使用和普通变量相同。
系统会在内存分配连续的10个int空间给此数组
直接对a的访问,就是访问此数组的首地址
a[1]
a[0]
…
a[9]
a[8]
数组首址
在C语言中,数组元素的下标是从0开始的。
数组的定义要注意以下问题
定义时绝对不能使用变量或变量表达式来表示元素个数。
例2: #define N 15
int data[N]; (√)
例1:不允许对数组大小作动态定义
int main()
{
int n,i=15;
scanf("%d",&n);
char s[n],g[i];
……
return 0;
}
不能用变量动态定义数组维数
数组大小最好用宏来定义,定义好后,将永远不变
#define SIZE 10 int a[SIZE];
多数情况下,不要省略元素个数(形参和数组初始化除外)。
数组元素的个数表示数组最多能存放的数据个数。
数组的定义要注意以下问题
例3: int n=3,c[n],d[]; ()
例4: int a[3]; (合法范围:a[0],a[1],a[2])
a[3]=10; (是错误的)
/*下标越界是大忌!C语言对数组不作越界检查*/
一维数组的使用
数组的下标是从0开始,下标最大值为元素个数-1。
数组中的每个元素按照下标的递增顺序存放
可以用任意表达式作为下标,动态决定访问哪个元素
for (i=0; i<SIZE; i++) a[i] = 2 * i;
sizeof可以用来获得数组大小
一维数组元素的引用
数组必须先定义,后使用
只能逐个引用数组元素,不能一次引用整个数组
数组元素表示形式:数组名[下标]
可以是整型常量、整型变量或整型表达式
例 int a[10],n=1;
以下用法是否正确:
a[0]=0;
a[n+1]=n+1;
a[2*2]=8;
printf("%d",a);
()
必须 for(j=0;j<10;j++)
printf("%d\t",a[j]);
(√)