C语言教程:数组 学习目的:数组的概念比较简单,但是 由于它的引用,使程序的编制内容更 加贴近实际。通过讲解,使学生熟悉 数组的编程方式、运行方法和程序算 法分析
C语言教程:数组 学习目的:数组的概念比较简单,但是 由于它的引用,使程序的编制内容更 加贴近实际。通过讲解,使学生熟悉 数组的编程方式、运行方法和程序算 法分析
数组内容介绍 1维数组 兴2维数组 煤3 字符数组 4字符串处理函数
数组内容介绍 1 一维数组 2 二维数组 3 字符数组 4 字符串处理函数
数组的概念:在程序设计中,为了处理方便,把具 有相同类型的若干变量按有序的形式组织起来。这些按 序排列的同类数据元素的集合称为数组。 2、数组属于构造数据类型:一个数组可以分解为多个 数组元素,这些数组元素可以是基本数据类型或是构 造类型。 3、数组的类型:按数组元素的类型不同,数组又可分 为数值数组、字符数组、指针数组、结构数组等各种 类别。 4、声明:本章介绍数值数组和字符数组,其余的在以 后各章陆续介绍
1、数组的概念:在程序设计中,为了处理方便,把具 有相同类型的若干变量按有序的形式组织起来。这些按 序排列的同类数据元素的集合称为数组。 2、数组属于构造数据类型:一个数组可以分解为多个 数组元素,这些数组元素可以是基本数据类型或是构 造类型。 3、数组的类型:按数组元素的类型不同,数组又可分 为数值数组、字符数组、指针数组、结构数组等各种 类别。 4、声明:本章介绍数值数组和字符数组,其余的在以 后各章陆续介绍
维数组的定义方式为: 类型说明符数组名[常量表达式 例如 int a[] 说明整型数组a,有10个元素 float b[10c[20,说明实型数组b,有10个元素,实型 数组c,有20个元素。 char ch[20];说明字符数组ch,有20个元素。 强调: 方括号中的常量表达式表示数据元素的个数,也称为 数组的长度,但数组元素的下标从0开始,到长度-1为 止。如nta5]表示数组a有5个元素。但是其下标从0 开始计算。因此5个元素分别为a[0]a[,a[2a[3]a[4]
一维数组的定义方式为: 类型说明符 数组名[常量表达式]; 例如: int a[10]; 说明整型数组a,有10个元素。 float b[10],c[20]; 说明实型数组b,有10个元素,实型 数组c,有20个元素。 char ch[20]; 说明字符数组ch,有20个元素。 强调: 方括号中的常量表达式表示数据元素的个数,也称为 数组的长度,但数组元素的下标从0开始,到长度-1为 止。如int a[5];表示数组a有 5个元素。但是其下标从0 开始计算。因此5个元素分别为a[0],a[1],a[2],a[3],a[4]
数组名不能与其它变量名相同。 例如: main int a float a[10] 是错误的
数组名不能与其它变量名相同。 例如: main() { int a; float a[10]; …… } 是错误的
不能在方括号中用变量来表示元素的个数,但是 可以是符号常数或常量表达式。 例如: #define fd 5 main() f int a[3+2], b[7+FDI }∥是合法的 但是下述说明方式是错误的。 maint tintn=5 int an
不能在方括号中用变量来表示元素的个数,但是 可以是符号常数或常量表达式。 例如: #define FD 5 main( ) { int a[3+2],b[7+FD]; …… } //是合法的。 但是下述说明方式是错误的。 main( ) { int n=5; int a[n]; …… }
维数组元素的引用 数组元素的一般形式为:数组名[下标] 例如:a[5];a[计+j];a[i++] 说明: 1.下标表示了元素在数组中的顺序号。 2.其中下标只能为整型常量或整型表达式。如为小数时, C编译将自动取整 3数组元素也称为下标变量,在C语言中只能逐个地使用 下标变量,而不能一次引用整个数组 例如,输出有10个元素的数组必须使用循环语句逐个输出 各下标变量: for(i=0;1<10;i+) printi("%d",a[i])而不能用一个语句输出整个数组。 下面的写法是错误的: printf("%d",a);
一维数组元素的引用 数组元素的一般形式为: 数组名[下标] 例如: a[5]; a[i+j]; a[i++] 说明: 1.下标表示了元素在数组中的顺序号。 2.其中下标只能为整型常量或整型表达式。如为小数时, C编译将自动取整。 3.数组元素也称为下标变量,在C语言中只能逐个地使用 下标变量,而不能一次引用整个数组。 例如,输出有10个元素的数组必须使用循环语句逐个输出 各下标变量: for(i=0; i<10; i++) printf("%d",a[i]);而不能用一个语句输出整个数组。 下面的写法是错误的:printf("%d",a);
举例:分析下面的程序及其执行结果 main()∥例刚1 for(i=9;1>=0;i-) i int i, a[10] printf("%", a1;) for(i=0;=0;1-) i int i, a[101 printf("%d" aiD;) for(i=0;1<10;) main()∥例2 a[i计++]2*i+1 for(i=0;i<=9;i++) fint 1, a[ 10] for(i=0;i<10,) printf("%od" aiD) a[i++]=i printf("n%d dn"a[52],a[5.8])}
举例:分析下面的程序及其执行结果 main( ) //例1 { int i,a[10]; for(i=0;i=0;i--) printf("%d ",a[i]); } main( ) //例2 {int i,a[10]; for(i=0;i=0;i--) printf("%d",a[i]); } main( ) //例3 { int i,a[10]; for(i=0;i<10;) a[i++]=2*i+1; for(i=0;i<=9;i++) printf("%d ",a[i]); printf("\n%d %d\n",a[5.2],a[5.8]); }
上例分析如下: 本例中用一个循环语句给a数组各元素送 令奇数,筌后用第个缠坏语句输出 or 式3省略了。在下标变量中使用了表达 式计+,用以修改循环变量。当然第二 个fo语句也可以这样作,C语言允许 用表达式表示下标。程序中最后一个 inti句输出了两次a5]的值,可以看 出当下标不为整数时将自动取整,小数 部分忽略
上例分析如下: 本例中用一个循环语句给a数组各元素送 入奇数值,然后用第二个循环语句输出 各个奇数。在第一个 for语句中,表达 式3省略了。在下标变量中使用了表达 式i++,用以修改循环变量。当然第二 个for语句也可以这样作,C语言允许 用表达式表示下标。程序中最后一个 printf语句输出了两次a[5]的值,可以看 出当下标不为整数时将自动取整,小数 部分忽略
维数组的初始化 初始化的概念数组初始化赋值是指在数组定义时给 数组元素赋予初值。数组初始化是在编译阶段进行的 这样将减少运行时间,提高效率。 初始化赋值的一般形式为: 类型说明符数组名常量表达式]={值,值.…值} 例如:inta10={0,1,2,34.56,7,8,9} 相当于a[0]=0;a[1]=1.a9=9; 其中在{}中的各数据值即为各元素的初值,各值之 间用逗号间隔
一维数组的初始化 初始化的概念:数组初始化赋值是指在数组定义时给 数组元素赋予初值。数组初始化是在编译阶段进行的。 这样将减少运行时间,提高效率。 初始化赋值的一般形式为: 类型说明符 数组名[常量表达式]={值,值……值}; 例如:int a[10]={ 0,1,2,3,4,5,6,7,8,9 }; 相当于a[0]=0;a[1]=1...a[9]=9; 其中在{ }中的各数据值即为各元素的初值,各值之 间用逗号间隔