C++ 数组



C++ 数组存储相同类型元素的固定大小的顺序集合。数组用于存储数据集合,但通常将数组视为相同类型变量的集合更有用。

与其声明单个变量,例如 number0、number1、... 和 number99,不如声明一个数组变量,例如 numbers,并使用 numbers[0]、numbers[1] 和 ...、numbers[99] 来表示单个变量。数组中的特定元素通过索引访问。

所有数组都由连续的内存位置组成。最低地址对应于第一个元素,最高地址对应于最后一个元素。

声明数组

要在 C++ 中声明数组,程序员需要指定元素的类型以及数组所需的元素数量,如下所示:

type arrayName [ arraySize ];

这称为一维数组。arraySize 必须是大于零的整数常量,type 可以是任何有效的C++ 数据类型。例如,要声明一个名为 balance 的 10 个元素的 double 类型数组,可以使用以下语句:

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。索引为 4 的数组将是第 5 个,即最后一个元素,因为所有数组的第一个元素的索引都为 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

获取数组长度

要获取数组的长度,您可以使用sizeof()运算符,方法是将数组的大小除以数组元素的大小。

考虑以下语法:

length = sizeof(arr) / sizeof(arr[0]);

示例

在以下示例中,我们定义一个数组并查找它的长度:

#include <iostream>
using namespace std;

int main() {
  int arr[] = {10, 20, 30, 40, 50};
  int arr_length = sizeof(arr) / sizeof(arr[0]);

  cout << "Array's Length : " << arr_length;

  return 0;
}

输出

Array's Length : 5

更改数组元素

您可以通过指定索引并分配新值来更改数组元素的值。

示例

在以下示例中,我们更改索引 2 处的值:

#include <iostream>
using namespace std;

int main() {
  int arr[] = {10, 20, 30, 40, 50};

  cout << "Before changing, element at index 2: " << arr[2] << endl;

  // changing the value
  arr[2] = 108;

  cout << "After changing, element at index 2: " << arr[2] << endl;

  return 0;
}

输出

Before changing, element at index 2: 30
After changing, element at index 2: 108

更多关于 C++ 数组

数组对于 C++ 来说非常重要,需要更多详细的信息。以下是一些 C++ 程序员应该了解的重要概念:

序号 概念和描述
1 多维数组

C++ 支持多维数组。多维数组最简单的形式是二维数组。

2 指向数组的指针

您可以通过简单地指定数组名称(不带任何索引)来生成指向数组第一个元素的指针。

3 将数组传递给函数

您可以通过指定数组的名称(不带索引)将指向数组的指针传递给函数。

4 从函数返回数组

C++ 允许函数返回数组。

广告