C语言程序设计教程﹝修订本﹞第6章数组.ppt
文本预览下载声明
第6章 数 组 ;6.1 一维数组
6.2 二维数组
6.3 字符数组与字符串
6.4 数组作为函数参数
6.5 程序举例
;6.1 一维数组
6.1.1 一维数组的定义与引用
定义一维数组的一般形式如下:
类型说明符 数组名[常量表达式];
其中类型说明符是定义数组中各元素的数据类型,常量表达式是说明数组的大小(即数组中元素的个数。
数组的说明与变量的说明一样,其作用是为数组分配存储空间。
;关于数组的说明要注意以下几个问题:
(1)数组名的命名规则与变量名相同。
(2)说明数组大小的常量表达式必须为整型,并且用方括号括起来(不能用圆括号)。
(3)说明数组大小的常量表达式中可以包含符号常量,但不能是变量。 ;例6.1 下面的程序说明了如何对数组定义和引用数组元素:
#include stdio.h
#define N 5
main()
{ int i, a[N];
for (i=0; i<N; i=i+1) a[i]=i;
for (i=0; i<N; i=i+1)
printf(%5d,a[i]);
printf(\n);
}; 在这个程序中,首先定义了一个长度为5的整型一维数组a,然后利用for循环对其中的每一个元素(a[0]~a[4])进行赋值,最后利用for循环输出这5个元素值。
在C语言中,凡是一般简单变量可以使用的地方都可以使用数组元素。
;6.1.2 一维数组的初始化
在C语言中,给数组元素提供数据的方法有以下3种。
(1)利用赋值语句逐个对数组中的元素进行赋值。
(2)利用输入函数逐个输入数组中的各个元素。例如,
#include stdio.h
main()
{ int i, a[5];
for (i=0; i<5; i=i+1) scanf(%d,a[i]);
}
其中a[i]表示取数组元素a[i]的地址。
(3)初始化。 ;下面对静态一维数组的初始化作三点说明:
(1)可以只给数组的前若干个元素赋初值,此时后面的元素均将自动赋以初值0。
(2)在对全部元素赋初值时,说明语句中可以不指定数组长度,其长度默认为与初值表中数据的个数相同。
(3)虽然标准C语言规定只能对“静态存储”的数组进行初始化,即除了可以对外部(全局)数组进行初始化外,还可以对用static说明的局部数组进行初始化。 ;例6.3 分析下列程序的输出结果:
#include stdio.h
main()
{ int k,x[5];
static int y[5];
int z[5]={0,0,0};
for (k=0; k<5; k++)
{ printf(%5d%5d%5d,x[k],y[k],z[k]);
printf(\n);
}
}
;6.2 二维数组
6.2.1 二维数组的定义与引用
定义二维数组的一般形式如下:
类型说明符 数组名[常量表达式1][常量表达式2];
;6.2.2 二维数组的初始化
与一维数组一样,也可以对静态存储的二维数组进行初始化。
在对二维数组进行初始化时要注意以下几点。
(1)在分行给二维数组赋初值时,对于每一行都可以只对前几个元素赋初值,后面未赋初值的元素系统将自动赋初值0;并且,还可以只对前几行元素赋初值。
(2)在给全部元素赋初值时,说明语句中可以省略第一维的长度说明。
(3)在分行赋初值时,也可以省略第一维的长度说明。 ;6.3 字符数组与字符串
6.3.1 字符数组的定义与初始化
定义字符数组的一般形式如下:
char 数组名[常量表达式]; 一维字符数组
char 数组名[常量表达式1][常量表达式2]; 二维字符数组
(1)当对字符数组中所有元素赋初值时,数组的长度说明可以省略。
(2)可以只对前若干元素赋初值。
(3)虽然标准C语言规定只能对“静态存储”的字符数组进行初始化,即除了可以对外部(全局)字符数组进行初始化外,还可以对用static说明的局部字符数组进行初始化。 ;6.3.2 字符串
C语言规定,字符串常量(简称字符串)要用一对双撇号括起来。在一个字符串常量中,最后还包括一个结束符‘\0’。
C语言允许用字符串常量对字符数组进行初始化。
;6.3.3 字符数组与字符串的输入与输出
1.输入输出一个字符(格式说明符为 %c)
在用于输入时,输入项为数组
显示全部