
C语言程序设计 赵晓阳
赵晓阳

第6章数组 ·6.1一维数组 ·6.2二维数组 ·6.3字符数组 ·6.4字符数组应用举例
第6章 数组 6.1 一维数组 6.2 二维数组 6.3 字符数组 6.4 字符数组应用举例

6.1一维数组 ·一维数组中的元素是线性地排列成一行,而每个数组元素的下标只有 一个。 ·6.1.1一维数组的定义 ·一维数组定义的一般格式为: ·[存储类型]数据类型数组名[常量表达式]; ·例如: ·floatb[5]; ·它表示数组名为b,此数组有15个元素。 ·说明: ·①存储类型为可选项,可为static(静态型)、extern(外部型)和 auto(自动型)。若省略存储类型,则默认为自动型(auto)。 上一页下一页返回
6.1 一维数组 一维数组中的元素是线性地排列成一行,而每个数组元素的下标只有 一个。 6.1.1 一维数组的定义 一维数组定义的一般格式为: [存储类型] 数据类型 数组名[常量表达式]; 例如: float b[15]; 它表示数组名为b,此数组有15个元素。 说明: ①存储类型为可选项,可为static(静态型)、extern(外部型)和 auto(自动型)。若省略存储类型,则默认为自动型(auto)。 上一页 下一页 返回

6.1一维数组 ·②数据类型是指数组元素的数据类型,可以为任何基本类型,如 int,char,float,double,.long,unsigned等,也可以为后续章节中介绍 的其他数据类型,如指针型、结构体型等。 ·③数组名是用户给数组起的名字,其命名符合标识符的命名规则。 ·④常量表达式可以是整型常量或符号常量,,不允许是变量。它表示数 组元素的个数,,即数组的长度。如b[15]中,15表示b数组有5个元 素,.下标从o开始。这5个元素是b[],b[2],b[3].b[4]。 注意不能使用数组元素b[15]。 ·⑤二个数组定义后,在编译时系统会在内存分配一块连续的存储空间 用于依次存放各数组元素。 上一页下一页返回
6.1 一维数组 ②数据类型是指数组元素的数据类型,可以为任何基本类型,如 int,char,float,double,long,unsigned等,也可以为后续章节中介绍 的其他数据类型,如指针型、结构体型等。 ③数组名是用户给数组起的名字,其命名符合标识符的命名规则。 ④常量表达式可以是整型常量或符号常量,不允许是变量。它表示数 组元素的个数,即数组的长度。如b[15]中,15表示b数组有15个元 素,下标从0开始。这15个元素是b[1],b[2],b[3],…b[14]。 注意不能使用数组元素b[15]。 ⑤一个数组定义后,在编译时系统会在内存分配一块连续的存储空间 用于依次存放各数组元素。 上一页 下一页 返回

6.1一维数组 ·6.1.2一维数组的初始化 ·在定义一个数组的同时对其赋初值,称为数组的初始化。 ·对一维数组初始化通常采用下列方法: ·①对数组的全部元素赋初值。例如: ·static int a[8]={,2345,6,7,8 ·{}中的各初始值则依次赋给各数组元素: 。a[o]=1,a[]=2,a[2]=3,a[3]=4,a[4]=5,a[5]=6,a[6] =7,a[7]=8。 上一页下一页返回
6.1 一维数组 6.1.2 一维数组的初始化 在定义一个数组的同时对其赋初值,称为数组的初始化。 对一维数组初始化通常采用下列方法: ①对数组的全部元素赋初值。例如: static int a[8]={1,2,3,4,5,6,7,8}; { }中的各初始值则依次赋给各数组元素: a[0]=1,a[1]=2,a[2]=3,a[3]=4,a[4]=5,a[5]=6,a[6] =7,a[7]=8。 上一页 下一页 返回

6.1一维数组 ·②对数组的前若干元素赋初值,而其余元素系统自动赋予0。例 如: ·staticinta[8]={1,2,3,4,5; 定义a数组有8个元素,但花括弧内只提供了5个初值,这表示只给前 面5个元素赋初值,后3个元素值为0。 ·③若对数组的全部元素赋初值,其数组的长度可以省略。例如: ·f1oatd[]={1.2355.6,6.77.8,8.99-5; 这时系统会根据{}中初值的个数决定数组的长度为7。 上一页下一页返回
6.1 一维数组 ②对数组的前若干元素赋初值,而其余元素系统自动赋予0。例 如: static int a[8]={1,2,3,4,5}; 定义a数组有8个元素,但花括弧内只提供了5个初值,这表示只给前 面5个元素赋初值,后3个元素值为0。 ③若对数组的全部元素赋初值,其数组的长度可以省略。例如: float d[ ]={1.2,3.5,5.6,6.7,7.8,8.9,9.5}; 这时系统会根据{}中初值的个数决定数组的长度为7。 上一页 下一页 返回

6.1一维数组 ·例61一维数组的全部初始化。 ●#include ·main() ·{inti; ·staticinta[1o]={1,2,345,6,7,8,9,1o};/*给静态数组a赋初值*/ ·for(i=o;i ·printf("%d",a[i]); ●} ·程序运行结果: ·12345678910 上一页下一页返回
6.1 一维数组 例6-1 一维数组的全部初始化。 #include main( ) { int i; static int a[10]={1,2,3,4,5,6,7,8,9,10}; /*给静态数组a赋初值*/ for(i=0;i printf(″%d″,a[i]); } 程序运行结果: 1 2 3 4 5 6 7 8 9 10 上一页 下一页 返回

6.1一维数组 ·6.1.3一维数组元素的引用 ·数组必须先定义而后使用。C语言规定,数组不能作为整体引用,而 只能逐个引用它的各个数组元素。 ·数组元素引用的一般格式为: ·数组名[下标表达式] 其中,“下标表达式”可以是整型常量、已赋值的整型变量或整型表 达式,其值不允许越界,即不能超出数组元素下标的取值范围。 上一页下一页返回
6.1 一维数组 6.1.3 一维数组元素的引用 数组必须先定义而后使用。C语言规定,数组不能作为整体引用,而 只能逐个引用它的各个数组元素。 数组元素引用的一般格式为: 数组名[下标表达式] 其中,“下标表达式”可以是整型常量、已赋值的整型变量或整型表 达式,其值不允许越界,即不能超出数组元素下标的取值范围。 上一页 下一页 返回

6.1一维数组 ·例6-2数组元素的引用。 main() 。{inti,a[o]; .for(i=o;i=o;i-) ·printf("%d",a[i]) ·} ·运行结果如下: ·9876543210 ·程序使a[o]到a[9]的值为0~9,然后逆序输出。 上一页下一页返回
6.1 一维数组 例6-2 数组元素的引用。 main( ) { int i, a[10]; for (i=0; i=0; i--) printf (″%d″, a[i]) } 运行结果如下: 9 8 7 6 5 4 3 2 1 0 程序使a[0]到a[9]的值为0~9,然后逆序输出。 上一页 下一页 返回

6.1一维数组 ·6.1.4一维数组应用举例 ·例6-3求Fibonacci数列的前15项。 ·fibonacci数列的特点是:前两项为1,1,从第3项开始其值为前两项 之和。其公式为: n=1,n=2 ftn-1]+fn-2 n>2 ●include 。main() ·{inti; ·intf[5]={,; /*给数组的前两项赋初值*/ 上一页下一页返回
6.1 一维数组 6.1.4 一维数组应用举例 例6-3 求Fibonacci 数列的前15项。 fibonacci数列的特点是:前两项为1,1,从第3项开始其值为前两项 之和。其公式为: #include main( ) { int i; int f[15]={1,1}; /*给数组f的前两项赋初值*/ 上一页 下一页 返回