【2017年整理】第6章 C语言数组.doc
文本预览下载声明
数组
本章要求
一维数组和多维数组的定义,初始化和引用 .
字符串与字符数组
数组
数组
一维数组
二维数组
字符数组
字符串
引言:
在程序设计中,为了处理方便,把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元素的集合称为数组。在C语言中,数组属于构造数据类型。
一. 一维数组的定义
定义: 数组是有序数据(必须是相同的数据类型结构)的集合.
格式: 类型说明符 数组名[常量表达式]
例如: int a[10] ; 表示数组名为a,有10个元素,并且每个元素的类型都是int型的.
float b[10],c[5]; 说明实型数组b有10个元素,实型数组有5个元素;
注意:
1. 数组名的命名规则和标示符的命名规则相同。
2.常量表达式要有方括号括起来,不能用圆括号,int a(10);
这是非法的!
3.常量表达式表示数组元素的个数,即数组长度.并且数组的
第一个元素是从下标0开始的!
4.常量表达式可以是常量也可以是符号常量,不能包含变量。C语言绝对不允许对数组的大小作动态定义;
例如:下面是非法的
int n;
scanf(“%d”,n);
int a[n];
5.数组的类型实际上就是指数组元素的取值类型,对于同一数组,它所有元素的数据类型都是相同的;
6.数组名不能与其他变量名相同;例如:
main()
{
int a;
float a[10];
………..
} 是非法的!
7.允许在同一个类型说明中,说明多个数组和多个变量;
例如: int a,b,c,d[10],e[5];
二. 一维数组元素的初始化
有下列方法初始化: 1)在定义数组时,对数组元素赋初值;
例如: int a[10]={0,1,2,3,4,5,6,7,8,9};
上面的语句等价于
a[0]=0,a[1]=1,
2)可以只给一部分元素赋初值,例如:
int a[10]={0,1,2,3,4};
表示只给数组的前5个元素赋初值,后5 个元素的值,系统自动默认为0
3)在对全部数组元素赋初值时,可以不指定数组长度;例如:
int a[5]={0,1,2,3,4};
可以改写为: int a[]={0,1,2,3,4};
但是,int a[10] ={0,1,2,3,4};
不能改写为: int a[]={0,1,2,3,4};
三. 一维数组的引用
数组必须先定义,后使用!
C语言规定: 只能逐个引用数组元素,而不能一次引用整个数组!
数组的引用形式为: 数组名[下标] 其中,下标可以是整型常量也可以是整型表达式.
例如: a[0]=a[5]+a[7]+a[2*3]
四. 一维数组的程序举例
1.读10个数存入数组中,输出数组中的所有数据.
main()
{
int i,a[10];
for(i=0;i=9;i++)
a[i]=i; /*顺序给数组元素赋初*/
for(i=0;i=9;i++)
printf(“%d”,a[i]); /*顺序输出数组元素*/
}
2.读10个整数存入数组中,输出平均值.
#include stdio.h
#define size 10
main(){
int x[size],i;
float s=0,ave;
for(i=0;isize;i++)
scanf(“%d”,x[i]);
for(i=0;isize;i++)
s+=x[i];
ave=s/size;
printf(“%d\n”,ave);
}
五. 二维数组的定义
定义格式:
类型说明符 数组名[常量表达式1][常量表达式2]
其中表达式1表示第一维下标的长度;
表达式2表示第二维下标的长度;
例如: int a[2][3];
说明了一个2行3列的数组,数组名为a,数组元素的类型为整型,该数组共有2*3个元素;
即: a[0][0],a[0][1],a[0][2]
a[1][0],a[1][1],a[1][2]
注意的是:
二维数组在概念上是二维的,就是说其下标在两个方向上变化,数组元素在数组中的位置也处于一个平面中,并不向一维数组,所有的元素是线性的,但是,二维数组中的元素和一维数组中的元素一样,也是按线性存储的;
如何存储呢?
首先,它和一维数组一样,也是按线性存储的.
在C语言中,二维数组是按行排列的,即存完一行后,顺序存入第二行;
还是上面那个例子: int a[2
显示全部