Posted on 2012-07-08 14:29
linzheng 阅读(205)
评论(0) 编辑 收藏 引用
数组array 是一种顺序容器它包含单一类型的元素例如序列:
0 1 1 2 3 5 8 13 21
代表菲波那契数列的前9 个数,只要给出最前面两个元素后面的元素依次可以由前面两个元素相加得出,为了定义和初始化一个数组以便存放这些数我们可以这样写:
int fibon[ 9 ] = { 0, 1, 1, 2, 3, 5, 8, 13, 21 };
虽然C++ 对数组类型提供了内置支持,但是这种支持仅限于用来读写“单个元素”的机制。C++ 不支持数组的抽象abstraction,也不支持对整个数组的操作我们有时会希望对整个数组进行操作,例如把一个数组赋值给另外一个数组,对两个数组进行相等比较或者想知道数组的大小size。例如给出两个数组我们不能用赋值操作符把一个数组拷 贝到另一个中去
int array0[ 10 ], array1[ 10 ];
// 错误不能直接把一个数组赋值给另一个数组
array0 = array1;
如果我们希望把一个数组赋值给另外一个则必须自己写程序按顺序拷贝每个元素
for ( int index = 0; index < 10; ++index )
array0[ index ] = array1[ index ];
而且数组类型本身没有自我意识,它不知道自己的长度,我们必须另外记录数组本身的这些信息。当我们希望把数组作为一个参数传递给一个函数的时候,问题就出现了。