首页 理论教育数组的初始化和大小-C++程序设计基础教程

数组的初始化和大小-C++程序设计基础教程

【摘要】:数组的每一项都是一个变量,称为数组元素。如果在初始化数组的语句内忽略了数组大小,则数组元素个数就是初始化值的个数。以下初始化形式是合法的:字符数组可以用多个字符或一个字符串初始化,需要注意的是,字符串以空字符NULL结尾,因而也占据一个数组元素的位置。

数组是具有相同数据类型的元素组成的集合。在内存中,它占据一组连续的内存空间。数组的每一项都是一个变量,称为数组元素。每个元素的存取是通过数组名加偏移量来实现的。实际上,数组是一组相关的内存位置,它们都具有相同的名字和类型。为了引用数组中的特定位置或元素,需指定数组名和数组中特定元素的位置编号。

数组是程序设计语言中常用的数据结构之一。当若干数据具有相同的数据类型并且互相有一定关系时,把它们组织成数组非常有效。

和其他变量一样,在使用数组之前需要对数组进行定义。数组分为一维数组、二维数组和三维及以上的数组,通常把二维数组称为矩阵,三维及以上的数组称为多维数组。下面以一维数组为例说明数组的用法。

一维数组的定义格式如下:

类型数组名[常量表达式];

其中,“类型”指出数组元素的数据类型,“数组名”指出数组的名字,“常量表达式”指出一维数组中存储的元素个数。

例如,以下语句定义了一个具有5个元素的整型数组arr:

int arr[5];

对数组中某一个元素是通过数组名加下标访问的,也就是说,在数组名字后面的方括号内([])加入特定元素的位置编号,就可以引用这些元素中任何一个。如arr[0]是数组的第一个元素,arr[1]是数组的第二个元素,arr[4]是数组的最后一个元素,如图1.6所示。注意,数组的下标从0开始,因而一个具有n个元素的数组A,其有效元素为A[0]~A[n-1]。

一维数组在内存中的存放顺序如图1.6所示。

图1.6 一维数组存储结构图(www.chuimin.cn)

数组可在定义时初始化,其格式为:

类型数组名[数组范围]={值1,值2,…,值n};

初始化值的个数可以小于或等于数组定义的元素个数,但不可以多于元素个数(这将导致语法错误),对于全局或static存储类别(指定静态数组)的数组不足部分的数组元素系统自动以0值填充。如果在初始化数组的语句内忽略了数组大小,则数组元素个数就是初始化值的个数。以下初始化形式是合法的:

字符数组(每个元素均为单个字符)可以用多个字符或一个字符串初始化,需要注意的是,字符串以空字符NULL('\0')结尾,因而也占据一个数组元素的位置。以下是一些字符串数组的例子:

C++不支持数组之间的直接赋值,因而只能一个一个元素地赋值。如要将一个大小为20的数组A赋给另一个同样大小的数组B,可以利用循环进行:

for(i=0;i<20;i++)B[i]=A[i];

字符串(字符数组)的赋值可以利用预定义的字符串操作函数如strcpy()等实现,这可以参考相应的语言手册。

【例1.18】编写一个程序,从键盘输入10个学生的成绩,统计最高分、最低分和平均分。

解:利用一维数组Arry存储学生的成绩,然后用for循环进行求值。程序如下: