位置:首页 > 高级语言 > C++在线教程 > C++数组

C++数组

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作为其第一元素,其也被称为基本索引的索引。以下是我们上面所讨论的同一个数组的图形表示:

Array Presentation

访问数组元素:

一个元素由索引和数组名访问。这是由放置在方括号内的元素的索引数组的名称之后进行。例如:

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++允许函数返回数组