数组是由固定数目元素组成的数据结构,同一数组的所有元素的类型都相同。数组元素是通过下标进行访问的。数组可以是一维的,也可以是多维的,许多重要应用的数据结构都是基于数组的。
一·一维数组
一维数组是具有一个下标的数组元素组成的数组,其定义形式: <数据类型><数组名>[<数组长度>] ;
<数据类型> 是类型说明符,
<数组名>是数组的名字,
<数组长度>是任一值为正整数的int型常量表达式,用来指定数组中元素的个数,即数组的大小,数组元素的下标是从0到<数组长度>-1。
初始化:与所有基本数据类型相同,数组也可以在定义时初始化。例: int str[ ]={1,2,3,4};
花括号中的各数据项之间以逗号分隔。当数组声明时没有给出数组的大小,但是有初始化列表时,数组的大小就由列表中元素的个数来确定。如果明确给出了数组的大小,则在初始化列表中给出了多余的元素就是错误的。在定义数组时,可以不必给出所有数组元素的初始值,即在定义时可以部分地初始化数组,如果初始化列表中的元素不够,则剩余的元素将被设定为0.
访问数组元素: <数组名>[<表达式>] 其中<表达式>是非负的int型表达式,称为下标。下标用于指定所要访问的数组中元素的位置。在C++中,[ ]是一个运算符,称为下标元素安抚。数组下标从0开始,长度为n的数组,其下标的范围是0到n-1.在数组定义以后,给数组元素赋值时,必须一个元素一个元素地逐个访问。
赋值语句: a[0]=10; 将10存储到a[0]中,它是数组a中的第一个元素。
注:可以先定义符号常量,然后使用符号常量来定义数组,指定元素个数。但在定义数组之前,必须要确定数组中元素的个数。
二·多维数组
二维数组:二维数组是以行和列(即二维)形式排列的固定数目元素的集合,并且组成数组的每个元素的类型都相同,即带有两个下标的数组。
语法:<数据类型><数组名>[<表达式1>][<表达式2>]; 其中,两个表达式的值为正整数的常量表达式,分别用来指定数组中行和列的数目。
初始化:也可以在定义时进行初始化。
注:所有在一行中的元素可以用花括号括起来,并用逗号分隔;对于数字类型数组,如果给定的值不够,则没有指定数值的元素将初始化为0。此时至少应有一个值来初始化二维数组。在将多维数组作为函数的形参时,可以不指定该数组中第一维的大小,但是必须指定该数组中其他维的大小。多维数组只可以作为引用参数传递给函数,并且函数不能返回一个数组类型的返回值。
访问二维数组:<数组名>[<表达式1>][<表达式2>];其中两个表达式为非负整数的表达式。
三·string类型
string是一种用户自定义的数据类型,它由C++标准库来支持,而不是C++语言本身的一部分。在使用string数据类型之前,需要在程序中包含头文件string并声明其所在的名字空间std。
注:在C++中字符串由零个或多个字符组成,并且所有字符都由双引号括住。
四·字符数组
所有元素都是char类型的数组称为字符数组。目前,使用最广泛的字符集是ASCII和EBCDIC。ASCII字符集中第一个字符是不可打印的空字符(Null Character)。空字符在处理字符数组中起到十分重要的作用,在C++中,空字符(‘\0’)用来作为一个字符串结束的标志。
注:字符数组与字符串之间存在细微的差别。字符串以空字符结尾,即字符串的最后一个字符总是空字符。而字符数组可以不含空字符。
特点:
数组元素跟一般变量一样可以赋值、比较、计算等
数组下标也是从0~N-1(N为数组长度)
字符数组长度可以显式给出,也可以隐式得到
由双引号括起来的字符串常量具有静态字符串数组类型
用字符串对数组初始化时,编译程序以'\0'作为结束这个数组的标志。因此,数组长度至少要比字符串长度多1。
五·常用字符串函数
C++提供了一系列字符串操作的函数,这些函数都包含在头文件cstring中。
六·认识与感想
用循环表示数组,是我们对问题的解决多了一种更为简洁的方案,但从学习的角度来看数组的题目更为综合,其包含了循环、分支、嵌套多种成分,对我的上机操作能力要求更为严格。此时,我对数组的应用还远远不够达到要求,还需要我更加深刻的理解和训练。