C++提供一种数据结构 - 数组,其存储相同类型的元件的固定大小的连续集合。数组用于存储数据的集合,但它往往是更加有用认为数组作为相同类型的变量的集合。
相反,声明单个变量,如number0,数字1,...,和number99,声明一个数组变量,如数字使用numbers[0], numbers[1], ..., numbers[99]表示单个变量。在数组的特定元素由一个索引进行访问。
所有数组由连续的内存位置。最低的地址对应于第一元件和最高地址的最后一个元素。
声明数组:
在C++中声明数组,程序员指定元素的类型以及如下的数组所需元素的数量:
type arrayName [ arraySize ];
这就是所谓的一维数组。arraySize必须是整数大于零不变更大,类型可以是任何有效的C++数据类型。例如,要声明一个10个元素的数组为double类型的balance数组,使用此语句:
double balance[10];
初始化数组
C++可以初始化数组元素的任一个使用单个声明如下:
double balance[5] = {1000.0, 2.0, 3.4, 17.0, 50.0};
括号{}之间的数值不能大于声明为方括号[]之间的数组元素的数目。下面是一个例子,分配数组的单个元素:
如果省略数组的大小,数组只是足以容纳初始化被创建的大小。因此,如果编写:
double balance[] = {1000.0, 2.0, 3.4, 17.0, 50.0};
创建完全相同的数组,在前面的例子中那样。
balance[4] = 50.0;
上述声明数组中的元素分配第5个元素的值为50.0。数组的第四个索引是第五个元素,即最后一个元素,因为所有数组通常0作为其第一元素,其也被称为基本索引的索引。以下是我们上面所讨论的同一个数组的图形表示:
访问数组元素:
一个元素由索引和数组名访问。这是由放置在方括号内的元素的索引数组的名称之后进行。例如:
double salary = balance[9];
上述声明将采用数组的第10个元素赋值给变量salary。以下是一个例子,将使用所有上述三个概念即声明,分配和访问数组:
#include <iostream> using namespace std; #include <iomanip> using std::setw; int main () { int n[ 10 ]; // n is an array of 10 integers // initialize elements of array n to 0 for ( int i = 0; i < 10; i++ ) { n[ i ] = i + 100; // set element at location i to i + 100 } cout << "Element" << setw( 13 ) << "Value" << endl; // output each array element's value for ( int j = 0; j < 10; j++ ) { cout << setw( 7 )<< j << setw( 13 ) << n[ j ] << endl; } return 0; }
该程序利用了setw()函数来格式化输出。让我们编译和运行上面的程序,这将产生以下结果:
Element Value 0 100 1 101 2 102 3 103 4 104 5 105 6 106 7 107 8 108 9 109
C++数组详情:
数组在C++中是十分重要的,应该需要很多更详细的。有以下几个重要的概念,C++程序员应该清楚:
概念 | 描述 |
---|---|
多维数组 | C++支持多维数组。多维数组的最简单的形式是二维数组 |
指针数组 | 可以简单的通过指定数组名,没有任何指标产生一个指向数组的第一个元素 |
按数组传参到函数 | 可以通过指定数组的名称而不使用索引传递给函数的指针数组 |
从函数返回数组 | C++允许函数返回数组 |