架构师之旅

数组、指针和字符串是C++语言中很重要的概念。将三个重要的概念放在一起讲述,是因为它们之间有着千丝万缕的联系。软件编程中经常结合三者在一起,从而解决实际问题。下面各个章节将会具体通过相应实例讲述其基本概念、使用方式以及之间的基本关系。

C++数组是一种复合式的数据类型,用于存储连续的相同类型的数据。数组可以使用所有的C++数据类型,如int、float、double、char、struct等,包括类对象在内。所有的数据都存储在连续的内存空间中,位置基本固定,这使得数据的随机访问速度更快。下面将会详细讲述数组的基本概念以及相应的操作方式。

6.1.1 数组定义

数组可以看作为存放相同类型数据的一个集合。通常将数组根据维数划分为一维、二维…N维数组。最简单的一维数组通常表示数学中的向量概念,C++中一维数组一般语法定义如下所示。

Data_type ArrayName[length];

作为C++的一种复合类型,数组与其它数据类型的变量一样。数组在使用前必须作声明、定义,这样才会让随后的程序认识该变量,并且通过定义为其分配相应的内存空间。Data_type说明了数组的类型,即表示该数组中元素的类型。前面已经讲述过数组是存储同类型元素的顺序结构,那么Data_type说明了数组中所有的元素的数据类型。ArrayName为数组的名字,它可以使用除了C++关键字以外的标识符。length表示数组中存放元素的个数,也可以称为数组的长度。

下面通过如下几个数组定义的实例了解数组定义的基本概念,实例如下所示。

int array1[100]; //定义整型数组,该数组拥有100个整型元素

char array2[100]; //定义字符型数组,该数组拥有100个字符型元素

double array[100]; //定义double型数组,该数组拥有100个double型元素

上述几个实例说明采用C++不同的数据类型作为数组元素类型定义数组,同时指定数组的大小。该数组元素的大小必须是常量表达式。了解了数组的基本定义后,下面开始了解数组的初始化以及其元素访问。一元数组的初始化,采用一对大括号表示赋值数据的边界,在大括号的内部用逗号作为数据元素分隔符,按照一定的顺序来赋值。下面通过几个数组赋值的实例来熟悉一下数组初始化的应用。

int arrary[5] = {1,2,3,4,5}; //定义五个整型元素的数组,并且使用整型值1,2,3,4,5分别给数组中的元素赋值

在代码中,采用初始化赋值的方式一次性的将数组中元素都依次赋值,数组赋值的顺序是从左至右,不足使用0来补齐。示例如下:

int arrary[5] = {1,2,3}; //定义五个整型元素的数组,并且使用整型值1,2,3分别给数组前三个元素赋值,后两个元素默认使用0赋值

对于数组初始化,不一定非要给出其明确的长度,数组会自动计算赋值的元素个数。这种初始化方式使用实例如下所示。

int array[] = {1,2,3,4}; //定义4个整型的元素数组,并且使用整型值给其赋值

以上两种数组显式初始化的方式有点不同于第一种。第二种方式是显式定义数组长度,使用整型值依次从左至右给数组赋值,不足位数的直接使用默认0赋值。第三种方式由于数组实现了显式初始化,在确定显式的初始化元素个数后,数组的长度不必须提供出来。此时会根据初始化元素的个数来确定数组大小。

另外这里需要注意的是,数组之间并不能像C++的基本数据类型变量那样互相初始化以及赋值。如果需要互相赋值,则可以将数组中元素拷贝到其对应类型的数组中,并且需要按照顺序一个一个实现元素的拷贝。

6.1.2 字符数组

C++数组通常通过下标来访问元素,数组的下标规定从0开始依次递增。开发者可以通过指定的数组下标来访问该位置的元素。同样开发者也可以采用下标来给该数组的元素赋值或者初始化。使用数组下标赋值以及访问元素方式如下实例所示。

int array[5]; //声明拥有5个整型元素的数组array

array[1] = 2; //通过下标指定将整型值2赋值给数组第二个元素

int value = array[1]; //通过下标访问,将数组中第二个元素的值赋给整型变量value

以上的实例操作通过数组指定下标进行数组元素初始化,并且通过下标访问数组元素值用来供程序使用。另外数组可以定义成字符以及字符串型数组,这部分的使用需要有些注意的地方,下面将会逐一的讲述。

蚁穴虽小,溃之千里。

架构师之旅

相关文章:

你感兴趣的文章:

标签云: