2015年软件水平考试程序员之程序设计知识要点(14)
发布时间:2012/5/14 9:31:07 来源:城市网学院 编辑:ziteng
4.1 一维数组
1.数组的根基概念
数组是一组同类对象集结的一种暗示。在C说话中,数组类型是这样一种数据结构:数组所有元素的数据类型不异,元素个数固定,其元素按挨次存放,每个元素对应一个序号(称为下标),数组元素的下标从0起头挨次编号,各元素按下标存取(引用)。数组元素变量能与不异类型的自力的变量一样使用。引用数组元素变量所需的下标个数由数组的维数抉择,数组有一维数组、二维数组或多维数组之分。
2.一线数组的界说
一维数组的界说形式为:
类型声名符数组名[常量表达式」;
例如:
int a[5] ;
界说一个名为a的数组,它有五个元素,每个元素都是整型。数组界说包含以下几个要点:
(1)类型声名符用来指明数组元素的类型,统一数组的诸元素,它们的类型是不异的。
(2)数组是一个变量,与一般变量一样,用标识符命名,数组名遵守标识符的命名轨则。
(3)方括号“[]”是数组的标识表记标帜,方括号中的常量表达式的值暗示数组的元素个数,即数组的长度。例如,int a[5]中的 5暗示数组 a有5个元素,下标从0起头,这五个元素分袂是:a[0]、a[1]、a[2]、a[3]和a[4]。
(4)常量表达式凡是是整型常量、符号常量或sizeof(类型名),以及由它们组成的常量表达式。界说数组巨细用常量表达式,就是说数组的巨细是固定的,不成以包含引用变量值的表达式来界说数组的巨细。
(5)C说话有一个商定,当数组名零丁呈此刻表达式中时,数组名可以代表为它分配的内存区域的起头地址,即数组中下标为0的元素的地址。在这种情形下,数组名起着一个常量的浸染,即a与&a[0]浸染一样。如代码scanf(“%d”,&a[0])与 scanf(“%d”,a)都是为数组a的第一个元素输入值。
3.一维数组的初始化
可在数组界说同时,给出数组元素的初值。这种表述形式称为数组初始化。数组初始化可用以下几种体例实现:
(1)数组界似瘫,挨次列出数组全数元素的初值。例如:
int d[5]={0,l,2,3,4};
将数组元素的初值依次写在一对花括弧内。经膳缦沔界说和初始化之后,就有d[0]=0.d[l]=l、d[2]=2、d[3]=3、d[4]=4。
(2)只给数组的前面一部门元素设定初值。例如:
int e[5]={0,l, 2};
界说数组e有5个整型元素,其中前三个元素设定了初值,尔后两个元素末明晰地设定初值。系统商定,当一个数组的部门元素被设定初值后,对于元素为数值型的数组,那些末明晰设定初值的元素自动被设定0值。所以数组e的后两个元素的初值为0。可是,当界说数组时,如未对它的元素指定过初值,对于内部的局部数组,则它的元素的值是不确定的。
(3)当对数组的全数元素都明晰设定初制瘫,可以不指定数组元素的个数。例如:
int g[]={5,6,7,8,9};
系统按照初始化的花括号内的初值个数确定数组的元素个数,所以数组g有五个元素。但若供给的初值个数小于数组但愿的元素个数时,则方括号中的数组元素个数不能省略。如代码int b[10]={1,2,3,4,5}界说数组 b有10个元素,前五个元素如设定所示,后五个元素都为0。反之,如供给的初值个数跨越了数组元素个数,就是一个错误。
4.一维数组元素的引用
轨范界说了数组后,就可引用数组的元素。引用数组元素的一般形式为:
数组名[下标]
其中下标可所以整型常量、整型变量或整型表达式。例如,数组a的五个元素可分袂用a[0]、a[l]、a[2]、a[3]、a[4]来引用它们。
设有界说:
int x[20], i;
以下代码实现挨次输入数组X的全数元素:
for(i=0;i<20;i++)
scanf(“%d”,&x[i]);