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.输入输出一个字符(格式说明
显示全部