文档介绍:上次作业:1、#define low(x) (x)+322、#define swap(x,y) {int t ;t=x;x=y;y=t;} 本次课内容:一维数组教学目的:掌握一维数组的定义、初始化,数组的引用、数组作为函数参数及数据排序、查找等处理方法。重点:一维数组的定义、初始化及数组的引用。难点:利用数组的数据处理(排序、查找等问题处理),地址传递。
一、一维数组的定义 一般形式: 类型标识符数组名[ 元素个数];如:int a[5];说明: (1)元素序号从0起始。 (2)元素个数也称数组长度。 (3)定义了n个连续的存储单元(每个单元字节数由数据类型决定)。 (4)数组名是第一个单元的地址。
2字节
2字节
2字节
2字节
2字节
a{0}
a{1}
a{2}
a{3}
a{4}
内存空间
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
地址
元素
元素占字节
a
二、一维数组的初始化 在数组定义时指定元素的初始值,称初始化。如: static int a[5]={1,2,3,4,5}; static char ch[2]={‘a’,’b’};说明: (1) 元素定义的初值个数不足时,用零补齐。 如 static int a[ 5]={1,2,3}; 等价于: static a[5]={1,2,3,0,0}; int s[8]={0}; s[0] ~ s[7]中的值均为零。 (2)元素定义时赋初值,可以不指定数组个数; 如 static int a[ ]={1,2,3,4,5]; 此时将以初值个数决定数组长度。 (3)静态和外部存储类型的数组不进行初始化,隐含的初值为零或空字符,自动类型数组未初始化,其值不确定。 static char ch1[5]; /*ch1[0]~ch1[4]中的值为空,即‘’*/ static int m[5]; /*m[0]~m[4]中的值为零*/ float p[5]; /*p[0]~ p[4]中的值不确定*/
三、数组元素的引用 数组定义后即可以引用。如: a[1]=3 ; a[2]=a[1]+1;注:C编译不检查下标“出界”,若引用出界下标,将引用数组以外的(下面存储单元内容)数据引用,造成错误。 数组元素引用,一般采用循环结构。 如:for ( i=1 ; i<5 ; i++ ) a [ i ] = i ;四、数组作为函数参数 数组数据传送到函数的两种方法: 1、数组元素作为参数(值传递)如: : are=fun(a[0],a[1],a[2]); : float fun(float a,float b,float c) { : }
2、数组名作为函数参数(地址传递) : int fun(int x[3]); int a[3]={12,34,54,}; int ave; ave=fun(a); : } int fun(int x[3]) { int sum; sum=x[0]+x[1]+x[2]; return (sum); } 特